前提・実現したいこと
初心者です。
1ページの中からfor文でレストラン情報をスクレイピングしたいのですが、
for文がうまく回っていないようです。
原因がわかりません。
結果としては、ページに載っているレストラン情報の
レストラン名・住所・メニューをリスト化したいです。
発生している問題・エラーメッセージ
shops内の1軒目だけはきちんと情報が取れていますが、
shopsの回数分同じデータが繰り返されてリストで返ってきます。
for文がきちんと回っていないようです。
エラーメッセージ ```エラーメッセージは特にありません。 ### 該当のソースコード ```Python import requests from bs4 import BeautifulSoup import time res = requests.get("https://www.tvq.co.jp/o_j/otonanatv/maiu/") res.encoding = res.apparent_encoding top_soup = BeautifulSoup(res.text, "html.parser") top_page_title = top_soup.find("li", attrs={"class":"column-list-item"}) elem_top_page_title = top_page_title.find("a", attrs={"class":"column-list-link"}) con_url = elem_top_page_title["href"] ori_url = "https://www.tvq.co.jp/" page_url = ori_url+con_url res_page = requests.get(page_url) res_page.encoding = res_page.apparent_encoding page_soup = BeautifulSoup(res_page.text, "html.parser") shops = page_soup.find_all("li", attrs = {"class":"maiu-detail-item"}) shop = shops[0] shop_infos = [] for shop in shops: shop_name = page_soup.h4.text.replace("◆","") shop_address = page_soup.find("div", attrs={"class":"txt"}).p.text.replace("住所:","") shop_menu = page_soup.find("ul", attrs = {"class":"maiu-menu-items"}).text.replace("\n","■") shop_info = [shop_name, shop_address, shop_menu] shop_infos.append(shop_info)
試したこと
shop = shops[0]として、数字をずらした時にきちんと中身が変わるかどうかの確認。
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。