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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

1409閲覧

bs4で特定の値をとる方法についてお助けお願いします

heihoo

総合スコア56

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2015/07/08 14:56

Python2.7.5とBS4でスクレイピングしています。

以下のサイトから住所(東京都港区六本木1-4-5 アークヒルズサウスタワー 1F)を取得したいのですが、
http://tabelog.com/tokyo/A1308/A130802/13015251/

取得出来たのは1-4-5を除いたそれ以外のみです。
そこで、1-4-5を取得したいのですが何か良い方法ありませんでしょうか!?

お助けお願い致します。。

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

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

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

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

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

guest

回答1

0

ベストアンサー

HTMLは次のようになっています。

lang

1<p rel="v:addr"> 2 <span property="v:region"> 3 <a href="/tokyo/" class="listlink">東京都</a> 4 </span> 5 <span property="v:locality"> 6 <a href="/tokyo/C13103/rstLst/" class="listlink">港区</a> 7 <a href="/tokyo/C13103/C36186/rstLst/" class="listlink">六本木</a> 8 1-4-5 9 </span> 10 <span property="v:street-address">アークヒルズサウスタワー 1F</span> 11</p>

このような構造から取得する場合はstringsを使いgeneratorを受け取り処理しましょう。
"".join(soup.find_all('span',{"property":'v:locality'})[0].strings)

投稿2015/07/09 01:30

sho_cs

総合スコア3541

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

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

heihoo

2015/07/09 02:41 編集

いつもありがとうございます。 ところで3つほど疑問があるのですが、 1. > generatorを受け取り処理しましょう。 というのに関してgeneratorとはどういったものなのか? 2."".join() というのはなぜ使っているのでしょうか? 3.obj = soup.find_all('span',{"property":'v:locality'})[0].strings print obj 結果が<generator object _all_strings at 0x105dabc30>となること。 ※obj = soup.find_all('span',{"property":'v:locality'})[0].strings print next(obj) とすると、港区が返ってくる理由 これらについても教えていただければと思います。 どうぞ宜しくお願いします< (_ _) >
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問