网站抓取:python请求不下载完整网站?

时间:2016-01-09 19:03:02

标签: python web-scraping python-requests

我在抓取网站时遇到了问题。目的是在某些日子里为伦敦的酒店取得价格。为此,我从booking.com加载以下网址,然后尝试搜索关键字。但由于某种原因,requests.get并没有下载完整的网站。例如,下面的URL显示了浏览器中的酒店列表。他们每个人都展示了“Total'和价格。但是,在下面的代码site.find(' Total')中显示没有单词' Total'可以在字符串中找到,即使它在浏览器中可见。任何有关为何发生这种情况的建议都值得赞赏。

import requests

url='http://www.booking.com/searchresults.en-gb.html?label=gen173nr-17CAEoggJCAlhYSDNiBW5vcmVmaFCIAQGYAS64AQTIAQTYAQHoAQH4AQs;sid=1a43e0952558ac0ad0061d5b6523a7bc;dcid=1;checkin_monthday=4;checkin_year_month=2016-2;checkout_monthday=11;checkout_year_month=2016-2;city=-2601889;class_interval=1;csflt=%7B%7D;group_adults=7;group_children=0;highlighted_hotels=1192837;hp_sbox=1;label_click=undef;no_rooms=1;review_score_group=empty;room1=A%2CA%2CA%2CA%2CA%2CA%2CA;sb_price_type=total;score_min=0;si=ai%2Cco%2Cci%2Cre%2Cdi;ss=London;ssafas=1;ssb=empty;ssne=London;ssne_untouched=London&;order=price_for_two'
r=requests.get(url)

site=r.text
site.find('Total')

1 个答案:

答案 0 :(得分:6)

" Total"您正在谈论的信息是在浏览器中使用Javascript生成的。请求库无法为您生成此HTML,因为它不是浏览器环境。

要查看我正在谈论的内容,请尝试在没有Javascript的浏览器中运行该网址。

enter image description here

如果要抓取需要运行Javascript的HTML,您应该查看绑定到浏览器环境的库,例如Selenium