###前提・実現したいこと
プログラミング初心者です。ご教授お願いします。
イオンネットスーパー(https://www.aeonnetshop.com/shop/r/r5603_n01050000001160_v80/)でのすべての野菜の商品名と値段のスクレイピング結果をcsvに書き出したい。
###発生している問題・エラーメッセージ
ホームページ上の80種の野菜のうち、80番目の野菜のみcsvに書き出すことができているが、他の79種の野菜の情報が書き出されない。
###該当のソースコード
Python
1import csv 2import requests 3from bs4 import BeautifulSoup 4 5food_html = requests.get('https://www.aeonnetshop.com/shop/genre/genre.aspx?genre=5603&shop=01050000001160&pps=80') 6soup = BeautifulSoup(food_html.text, "html.parser") 7soup.find(class_='pc2015-item-inner pc2015-for-member') 8 9for food in soup.findAll(class_='pc2015-item-inner pc2015-for-member'): 10 food.find(class_='pc2015-item-name').find('span').string + food.find(class_='pc2015-price-1').find('strong').contents[0] + food.find(class_='pc2015-price-2').find('strong').contents[0] 11 12header = ['name','price1','price2'] 13body = [ 14 [food.find(class_='pc2015-item-name').find('span').string,food.find(class_='pc2015-price-1').find('strong').contents[0],food.find(class_='pc2015-price-2').find('strong').contents[0]] 15 ] 16with open('food.csv', 'wt',newline='') as csvfile: 17 writer = csv.writer(csvfile) 18 writer.writerow(header) 19 writer.writerows(body) 20
###試したこと
for文(for food in soup.findAll(class_='pc2015-item-inner pc2015-for-member'):)はprintするとすべての情報を書き出すことができるのでfor文は間違ってはいないと思います。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
回答2件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2016/10/15 04:07