質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

662閲覧

python スクレイピングに関しての質問です。

AN3000

総合スコア37

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2021/10/05 22:22

pythonでsuumo中古物件サイトのスクレイピングに関しての質問です。
以下のhtmlから物件名のみを取得したいのですが、価格まで抽出してしまいます。ウェブサイトなどいくつか参照したのですが、解決方法がわからず・・・
わかる方ぜひご教授していただけると幸いです。初歩的な質問になってしまい申し訳ありません。

python

1<dl> 2 <dt class="dottable-vm">物件名</dt> 3 <dd class="dottable-vm">シティインデックス千代田岩本町</dd> 4</dl> 5 <dl> 6 <span class="dottable-value">4080万円</span><dt class="dottable-vm">販売価格</dt> 7 <dd class="dottable-vm"> 8 </dd> 9</dl> 10 11コード 12import requests as re 13import pandas as pd 14from bs4 import BeautifulSoup 15url = 'https://suumo.jp/jj/bukken/ichiran/JJ012FC001/?ar=030&bs=011&ta=13&sc=13101&cn=9999999&cnb=0&et=9999999&hb=0&ht=9999999&kb=1&kj=9&km=1&kt=9999999&mb=0&mt=9999999&ni=9999999&pc=30&pj=1&po=0&tb=0&tj=0&tt=9999999' 16 17res = re.get(url) 18soup = BeautifulSoup(res.text,'lxml') 19u=soup.find_all('dd',class_='dottable-vm') 20 21 22実行結果>>>>[<dd class="dottable-vm">シティインデックス千代田岩本町</dd>, 23 <dd class="dottable-vm"> 24 <span class="dottable-value">4080万円</span> 25 </dd>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/10/06 00:16

HTMLと実行結果が合ってません。
guest

回答1

0

ベストアンサー

安直にやるのであれば、
u 変数の偶数Index目に物件名、奇数Index目に価格が入っているので
↓で取得できないでしょうか?

もっと効率の良いやり方はあると思うのですが、取り急ぎであればお役に立てるかと思います

python

1import requests as re 2import pandas as pd 3from bs4 import BeautifulSoup 4url = 'https://suumo.jp/jj/bukken/ichiran/JJ012FC001/?ar=030&bs=011&ta=13&sc=13101&cn=9999999&cnb=0&et=9999999&hb=0&ht=9999999&kb=1&kj=9&km=1&kt=9999999&mb=0&mt=9999999&ni=9999999&pc=30&pj=1&po=0&tb=0&tj=0&tt=9999999' 5 6res = re.get(url) 7soup = BeautifulSoup(res.text,'lxml') 8u=soup.find_all('dd',class_='dottable-vm') 9 10for i in range(0,len(u)): 11 if i%2 == 0: 12 print(u[i]) 13

投稿2021/10/06 01:09

PePePeT_i_C

総合スコア31

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

AN3000

2021/10/06 11:27

こんな規則性をみつけて利用する手もあるんですね。参考になりました!! 本当にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問