pythonでwebページのデータをページごとにスクレイピングし、csvファイルで保存したいと思っています。
処理が終わってからダウンロードされるため(chromeの仕様なのか)一度に10ファイルしかダウンロードされず、
スクレイピング→csvDL→次ページスクレイピング→csvDL・・のようにするにはどのようにすればよろしいでしょうか。
ご教授いただけますと幸いです。。
何卒よろしくお願い致します。
Python
1#https://teratail.com/questions/151490 2#参考記事 3 4url = 'https://www.oricon.co.jp/release/album/jp/p/-1/' # 取得先URL 5num_pages = 100 # 取得ページ数 6request_interval = 5 # ページ取得間隔 7 8data = [] 9for i in range(0, num_pages + 1): 10 url = urllib.parse.urljoin(url, '/release/album/jp/p/-0'+str(i)+'/') 11 print('getting page... ', url) 12 13 html = urllib.request.urlopen(url).read() 14 soup = BeautifulSoup(html, 'lxml') 15 16 ti = [title.text for title in soup(class_ ='title')] 17 ar = [artist.text for artist in soup(class_ ='artist')] 18 da = [dates.text for dates in soup(class_ ='cell-date')] 19 df_title = pd.Series(ti, name='title') 20 df_artist = pd.Series(ar, name='artist') 21 df_date = pd.Series(da, name='date') 22 release = pd.concat([df_title, df_artist, df_date], axis=1).reset_index() 23 pd.set_option('display.max_columns', 500) 24 print(release) 25 #with open ('release.csv', 'a', encoding='utf-8') as f: 26 #writer = csv.writer(f) 27 #writer.writerow([release]) 28 release.to_csv('release.csv',encoding='utf_8_sig', index=False) 29 files.download('release.csv') 30 time.sleep(request_interval)
回答2件
あなたの回答
tips
プレビュー