前提・実現したいこと
スクレイピング用のコードを書いています。目当ての情報をウェブから取得して保存するところまでできました。
このコードに、アクセス用のURLを作る上で用いたURLのパラメータも書き出す機能を追加したいと思っています。
詳細
現状は、下記のように取得した"('h2')"の情報がただ並んでいるだけのデータができます。
('h2')
('h2')
('h2')
.
.
.
これを、
{page_id}
('h2')
{page_id}
('h2')
{page_id}
('h2')
・
・
・
という風にし、どのパラメータの情報なのかわかるようにしたいです。
今のままでは、情報は取得できるけど、どのパラメータの情報なのかわからないので不便なのです。
どなたか正解例がわかる方、宜しくお願いします。
該当のソースコード
import requests, bs4 import csv import time def scrape(url, csv_writer): res = requests.get(url) res.raise_for_status() soup = bs4.BeautifulSoup(res.text, "html.parser") elems = soup.select ('h2') for elem in elems: print(elem) csv_writer.writerows(elems) time.sleep(1) def main(f): writer = csv.writer(f) with open('id_list.txt') as f: page_id_list = [int(row) for row in f] for page_id in page_id_list: print(page_id) scrape(f'https://news.yahoo.co.jp/pickup/{page_id}', writer) if __name__ == '__main__': with open('news.csv', 'w', encoding='CP932', errors='ignore') as f: main(f)
試したこと
print(page_id)でパラメータを表示できたので、csv_writer.writerows(page_id)とかf.write(page_id)というコードが有効だと思ったのですが、どこに書き込んでもエラーが出てしまいました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/18 14:05
2018/06/18 14:07
2018/06/18 14:15
2018/06/18 14:19