###前提・実現したいこと
プログラミング初心者です。ご教授お願いします。
イオンネットスーパー(https://www.aeonnetshop.com/shop/r/r5603_n01050000001160_v80/)でのすべての野菜の商品名と値段のスクレイピング結果をcsvに書き出したい。
###発生している問題・エラーメッセージ
ホームページ上の80種の野菜のうち、80番目の野菜のみcsvに書き出すことができているが、他の79種の野菜の情報が書き出されない。
###該当のソースコード
Python
import csv import requests from bs4 import BeautifulSoup food_html = requests.get('https://www.aeonnetshop.com/shop/genre/genre.aspx?genre=5603&shop=01050000001160&pps=80') soup = BeautifulSoup(food_html.text, "html.parser") soup.find(class_='pc2015-item-inner pc2015-for-member') for food in soup.findAll(class_='pc2015-item-inner pc2015-for-member'): 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] header = ['name','price1','price2'] body = [ [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]] ] with open('food.csv', 'wt',newline='') as csvfile: writer = csv.writer(csvfile) writer.writerow(header) writer.writerows(body)
###試したこと
for文(for food in soup.findAll(class_='pc2015-item-inner pc2015-for-member'):)はprintするとすべての情報を書き出すことができるのでfor文は間違ってはいないと思います。
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
まだ回答がついていません
会員登録して回答してみよう