🌊
7月27日
やりたいこと
・住所の要素指定
・駅 ・バス/徒歩 ・価格 ・間取り ・築年数の要素指定する
今の現状
住所を取得するために
areas = soup.select('div#js-bukkenList > form > ul > li div:last-of-type div:last-of-type > div > div div:last-of-type div.infodatabox-boxgroup > div > table > tbody tr:last-of-type > td > div')
for area in areas:
print(area.text)
と書いたが、住所以外の要素も取得されているのでそこを修正したい。色々試行錯誤したのち、以下のコードで住所のみ出力できるようになった。
これが該当箇所のhtml。上のコードでもパッと見は住所を取得できそうだが、他の箇所も出力されてしまう。なぜなんだろう、、、。
areas = soup.select('div#js-bukkenList > form > ul > li div:last-of-type div:last-of-type > div > div div:last-of-type div.infodatabox-boxgroup > div > table > tbody tr:last-of-type div:-soup-contains("東京都")')
for area in areas:
print(area.text)
最終的には
家の名前:〜
住所:〜
画像:〜
のようにしていきたい。
では次に各ページに移動してそこのhtml情報を取得するというコードを書く。
1ページ目のURLは、https://suumo.jp/tokyo/sc_shinjuku/pnz11.html
となっており、次のページではpnz12, その次はpnz13となる。そのため、forループでpnzに1ずつ数字を足していけば次のページまで遷移するというコードをかける。
とりあえず軌道修正して、
①一つ一つの物件情報にアクセス
②各ページのHTMLを取得
③そのファイルをフォルダに保存
④③のファイルから様々な情報を取得する
という流れに修正した。
そのため今は①の各物件のURLを出力するコードを書くことができた。嬉しい:)
#urlの取得
page_a = soup.select('div#js-bukkenList > form > ul > li div:last-of-type h2 > a')
for page_url in page_a:
print(page_url.get('href'))
Discussion