質問(悩み):
独学で初めてPythonを勉強中です。
まずは、scrapyの勉強のため、以下のURLから
「タイトル」と「社名」と「勤務場所」(※画像参照)だけをクローリング(スクレイピング)しようと
ググりながらプログラミングしていますが、
記述方法がわからず、手が止まっている状況です(汗)
以下に、途中までのソースを記述しました。
ソース:
pyjob/pyjob/items.py
import scrapy class PyjobItem(scrapy.Item): title = scrapy.Field() # タイトル company = scrapy.Field() # 社名 location = scrapy.Field() # 勤務場所
ソース:
pyjob/pyjob/spiders/pyjob_spider.py
import scrapy from ..items import PyjobItem class PyjobSpider(scrapy.Spider): name = 'pyjob_spider' allowed_domains = ['python.org'] start_urls = ['https://www.python.org/jobs/'] def parse(self, response):
↓↓ ここから先がどのように書いたら良いのかがわかりません。
↓↓ 手が止まっている状態です、ご教授下さい。
for jobs in response.css(''): item = PyjobItem() item['title'] = jobs.css('').extract_first() item['company'] = jobs.css('').extract_first() item['location'] = jobs.css('').extract_first() yield item
・for文のループ処理をどうやって書けばいいのかが苦戦中。
・要は、何をキーにループをすればいいのかがわからない。
・「NEXT」ページにもデータがあるので、それも最後まで取得したい。
・「社名」を抽出する際、以下のような\nや\tなどが入っていて、文字列だけを抽出する方法がわからない。
['\n ', '\n \n ', '\n\t\t Stiftelsen Flowminder\n ']
実現したいこと:
例えば、
pyjob_list.json
に以下のように吐き出したいです。
[
{
"title": "Senior Python Developer",
"company": "Stiftelsen Flowminder",
"location": "Southampton, Hampshire, United Kingdom"
},
{
"title": "Senior Software Engineer (BACKEND)",
"company": "CB Insights",
"location": "New York, New York, USA"
},
・
・
・
最後のページまで
]
以上、ご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。