スクレイピングで、賃貸物件サイトからの情報(建物名、所在地、アクセスなど)を3ページ分、辞書として取得したいのですが、どうしてもうまくいきません。
エラーにはならないのですが、検索したページが増えても辞書に追加できません。
初歩的なミスなのかもしれませんが、どうかどなたかお教えいただけると幸いです。
Python3
1 2from time import sleep 3from bs4 import BeautifulSoup 4import requests 5 6 7url = 'https://suumo.jp/chintai/tokyo/sc_shinjuku/?page={}' 8 9d_list = [] 10 11for i in range(1,4): 12 print('d_listの大きさ:',len(d_list)) 13 target_url = url.format(i) 14 print(target_url) 15 r = requests.get(target_url) 16 17 sleep(1) 18 19 soup = BeautifulSoup(r.text) 20 21 contents = soup.find_all('div',class_='cassettitem') 22 23 24 for content in contents: 25 detail = content.find('div',class_='cassetteitem-detail') 26 table = content.find('table',class_='cassetteitem_other') 27 28 title = detail.find('div',class_='cassetteitem_content-title').text 29 adress = detail.find('li',class_='cassetteitem_detail-col1').text 30 access = detail.find('li',class_='cassetteitem_detail-col2').text 31 age = detail.find('li',class_='cassetteitem_detail-col3').text 32 33 tr_tags = table.find_all('tr',class_='js-cassette_link') 34 35 36 for tr_tag in tr_tags: 37 floor,price,first_fee,capacity = tr_tag.find_all('td')[2:6] 38 39 fee,management_fee = price.find_all('li') 40 deposit,gratuity = first_fee.find_all('li') 41 madori,menseki = capacity.find_all('li') 42 43 d = { 44 'title':title, 45 'address':address, 46 'access':access, 47 'age':age, 48 'floor':floor.text, 49 'fee':fee.text, 50 'management_fee':management_fee.text, 51 'deposit':deposit.text, 52 'gratuity':gratuity.text, 53 'madori':madori.text, 54 'menseki':menseki.text 55 } 56 57 d_list.append(d) 58
回答1件
あなたの回答
tips
プレビュー