強欲で謙虚なツボツボ

趣味の読書の書の方

ChatGPT君と協力してエラーを乗り越えてプログラムを作る

概要

仕事でPythonのScrapyを使うことになりそうなので、スクレイピングのプログラムを作ってみることにした。
せっかくだから、凄腕エンジニアのChatGPT君に相談しながらScrapyの使い方を勉強した。

 

ChatGPT

アカウント登録しよう!!

openai.com

 

早速プログラムの作成を依頼する

プロンプト

Yahoo!ニュースの経済トピックス一覧をスクレイピングをするプログラムを作成してください。
条件は下記の通りです。
https://news.yahoo.co.jp/topics/business
Python 3.9
・Scrapy
・記事のURLとタイトル
・全てのページ

回答

import scrapy

class YahooNewsSpider(scrapy.Spider):
    name = 'yahoo_news'
    allowed_domains = ['news.yahoo.co.jp']
    start_urls = ['https://news.yahoo.co.jp/topics/business']

    def parse(self, response):
        for article in response.css('.topicsListItem'):
            title = article.css('.topicsListItem_title a::text').get()
            url = article.css('.topicsListItem_title a::attr(href)').get()
            yield {'title': title, 'url': url}

        next_page = response.css('.pagination .next a::attr(href)').get()
        if next_page is not None:
            yield response.follow(next_page, self.parse)

手直し

少し間違っている箇所があるので、そこは直接手作業で直します。

  • .topicListItem → .newsFeed_item
  • .topicListItem_title a::text → .newFeed_item_title::text
  • .topicListItem_title a::attr(href) → .newsFeed_item_link::attr(href)
  • .pagination .next a::attr(href) → .pagination_item-next a::attr(href)

 

エラーが発生した

scrapy runspider yahoo_news.py -o articles.csvを実行したらエラーとなってしまった。
エラーの解決もChatGPT君に相談しよう。

ModuleNotFoundError: No module named '_lzma'

普通に調べると、xzのインストールやpyenvでのpython再インストールで解決する事案が多いらしい。

これで解決することができました。

 

スクレイピング結果

Yahoo!ニュース経済トピックの全記事61件のデータを取得することができました!!
「,」は広告でタイトルとかは無いのでコンマになっているようです。
また、scrapy runspider yahoo_news.py -o articles.csvによるファイルへの書き出しは、上書きではなく行が追加されていく仕様でした。

title,url
ぬいぐるみに変化 楽しむ大人増,https://news.yahoo.co.jp/pickup/6455274
宿泊客が悪意の口コミ 現場の苦悩,https://news.yahoo.co.jp/pickup/6455267
訪日客増 タクシー捕まらない問題,https://news.yahoo.co.jp/pickup/6455259
日米韓台 半導体巡り協議していた,https://news.yahoo.co.jp/pickup/6455255
ミキハウス好調 24万円の子供服も,https://news.yahoo.co.jp/pickup/6455252
,
外国クルーズ来航 コロナ前水準へ,https://news.yahoo.co.jp/pickup/6455218
路線バスの「最前席封鎖」今後は,https://news.yahoo.co.jp/pickup/6455191
混乱招く?根付かない「Rサイズ」,https://news.yahoo.co.jp/pickup/6455149
「ロシア産キャビア」神話と虚像,https://news.yahoo.co.jp/pickup/6455147
ランドセル高額化 サブスクに商機,https://news.yahoo.co.jp/pickup/6455145
,
卵メニュー相次ぎ停止 外食悲鳴,https://news.yahoo.co.jp/pickup/6455143
卵メニュー販売停止 異変いつまで,https://news.yahoo.co.jp/pickup/6455134
需要鈍化でコロナ後模索  米製薬,https://news.yahoo.co.jp/pickup/6455128
インボイス制度 声優から反対の声,https://news.yahoo.co.jp/pickup/6455098
JAL便Uターン 空港「門限」とは,https://news.yahoo.co.jp/pickup/6455063
,
のぞみグリーン車2席使用 販売へ,https://news.yahoo.co.jp/pickup/6455043
電通G社長 談合の法人責任認める,https://news.yahoo.co.jp/pickup/6455042
NHK 郵便法違反で再び行政指導,https://news.yahoo.co.jp/pickup/6455033
「黒い吉野家」メニューにも戦略,https://news.yahoo.co.jp/pickup/6455026
電力大手5社の4月値上げ 先送りへ,https://news.yahoo.co.jp/pickup/6455000
,
いすゞ 3車種11.8万台をリコール,https://news.yahoo.co.jp/pickup/6454998
国内の広告費 15年ぶり最高更新,https://news.yahoo.co.jp/pickup/6454994
湯の交換年2回だけ 旅館認め謝罪,https://news.yahoo.co.jp/pickup/6454988
関西電力 4月末まで営業活動自粛,https://news.yahoo.co.jp/pickup/6454987かっぱ寿司」運営側が無罪主張,https://news.yahoo.co.jp/pickup/6454977
新たな迷惑動画 スシロー側対処へ,https://news.yahoo.co.jp/pickup/6454975
フジテック 社外取締役3人解任,https://news.yahoo.co.jp/pickup/6454971
電力値上げ 首相が厳格査定を指示,https://news.yahoo.co.jp/pickup/6454958
植田氏「日銀の金融政策は適切」,https://news.yahoo.co.jp/pickup/6454957
1月の消費者物価 41年ぶり上げ幅,https://news.yahoo.co.jp/pickup/6454944
,
シャンシャン 経済効果600億円か,https://news.yahoo.co.jp/pickup/6454940
米大統領 世銀総裁にバンガ氏指名,https://news.yahoo.co.jp/pickup/6454935
ワークマン アパレルに本格参入へ,https://news.yahoo.co.jp/pickup/6454892
超電導リニア 米国でJR東海がPR,https://news.yahoo.co.jp/pickup/6454890
トラック事故死 業界の問題と対策,https://news.yahoo.co.jp/pickup/6454875
,
携帯は強制解約 通信困窮者の困難,https://news.yahoo.co.jp/pickup/6454870
「住みたい街」都心回帰の流れ,https://news.yahoo.co.jp/pickup/6454853
みずほ銀 初任給5.5万円上げ方針,https://news.yahoo.co.jp/pickup/6454837
年末の東海道新幹線停電 原因発表,https://news.yahoo.co.jp/pickup/6454834
五輪談合 電通博報堂など立件へ,https://news.yahoo.co.jp/pickup/6454809
,
イワシ豊漁 1匹10円で売る店も,https://news.yahoo.co.jp/pickup/6454797
ホンダがベア1万円超の満額回答,https://news.yahoo.co.jp/pickup/6454801
つくばエクスプレス レール破断か,https://news.yahoo.co.jp/pickup/6454795
ロッテリア買収 ゼンショーの狙い,https://news.yahoo.co.jp/pickup/6454776
盗まれた高級車どこに 追った男性,https://news.yahoo.co.jp/pickup/6454766
,
ゼンショー バーガーで苦い経験も,https://news.yahoo.co.jp/pickup/6454762
トヨタ 春闘で3年連続の満額回答,https://news.yahoo.co.jp/pickup/6454759
カレンダーに昭和98年 なぜ併記,https://news.yahoo.co.jp/pickup/6454753
春闘 トヨタが初交渉で満額回答,https://news.yahoo.co.jp/pickup/6454754
賃上げ表明続々 人材確保に危機感,https://news.yahoo.co.jp/pickup/6454741マッキンゼー 約2000人を削減へ,https://news.yahoo.co.jp/pickup/6454724
加熱式メビウス値下げへ 500円に,https://news.yahoo.co.jp/pickup/6454704
関電に法令順守の緊急指示 経産省,https://news.yahoo.co.jp/pickup/6454690
FOREVER21が再上陸 脱ファスト,https://news.yahoo.co.jp/pickup/6454685
国際郵便「航空書簡」9月末に終了,https://news.yahoo.co.jp/pickup/6454682
長期金利0.505%に 変動幅上限超え,https://news.yahoo.co.jp/pickup/6454670
放置多数? 空港の駐車場どう対応,https://news.yahoo.co.jp/pickup/6454657
マルハニチロ 4月にサバ缶値上げ,https://news.yahoo.co.jp/pickup/6454645
高年収層 税負担と「子育て罰」,https://news.yahoo.co.jp/pickup/6454644
迷惑動画 どうなる回転すし文化,https://news.yahoo.co.jp/pickup/6454629
賃上げでも人手不足「年収の壁」,https://news.yahoo.co.jp/pickup/6454623