2017-02-23 5 views
1

URLのhttps://www.airbnb.com/rooms/3093543には、ページの下部近くに読み込まれ、Presidioと呼ばれる「近隣」ボックスが含まれている地図があります。私はこれが唯一で取得することができ、動的変数であるかどうかわからないんだけどリクエストでこのリンクテキストを見つけることは可能ですか?

profile = BeautifulSoup(requests.get("https://www.airbnb.com/rooms/3093543").content, "html.parser")

print profile.select('div[id="hover-card"]')[0].find('a').text 
    # div[id="hover-card"] is not found 

:それは、私はこれでそれを取得しようとしている<a href="/locations/neighborhoods/479">Presidio</a>

として、タグに格納されています別のモジュール、またはリクエストを取得することが可能かどうかを判断します。

+1

いいえ、できません。それは動的に読み込まれます、あなたはブラウザでjavascriptを無効にすることによってそのようなものをチェックすることができます。代わりに例えばセレンを試してみてください。 –

答えて

2

このデータは別の要素から取得できます。

profile = BeautifulSoup(requests.get("https://www.airbnb.com/rooms/3093543").content, "html.parser") 
print profile.select('meta[id="_bootstrap-neighborhood_card"]')[0] 

し、必要な場合を介して要求マップを::

上記URL内のIDは、最初の印刷で neighborhood_basic_info属性によって与えられ
https://www.airbnb.pt/locations/api/neighborhood_tiles.json?ids%5B%5D=ID 

これを試してみてください。

関連する問題