如何访问此脚本元素的数据?

时间:2017-04-08 02:49:17

标签: javascript python html beautifulsoup python-requests

我正在尝试使用requestsBeautifulSoup来访问网页上的某些元数据。

可以访问一些script元素,但似乎不是特别的元素。

例如:

response = BeautifulSoup(requests.get("https://www.booking.com/hotel/br/olympia-residence.en-gb.html", verify=False).content, "html.parser")

scriptData = response.select('script[type="text/javascript"]')

在HTML中,有一个带有window.utag_data变量的脚本元素,但scriptData仅包含来自另一个script元素的数据。

我认为特定script元素的缺席可能是由于它在页面上动态加载,但如果是这种情况,我无法缩小提供该数据的响应。

是否可以通过window.utag_datarequests获取BeautifulSoup

1 个答案:

答案 0 :(得分:1)

根据您访问请求的方式,网站似乎正在发送不同的HTML。

如果我从浏览器访问该页面,我可以看到window.utag_data,但如果我使用curl访问该页面则不会:

$ curl -s https://www.booking.com/hotel/br/olympia-residence.en-gb.html | grep utag_data
$

在使用您提供的代码下载的响应中也没有显示:

>>> 'window.utag_data' in str(response)
False

您可以尝试重播请求,就好像它是由浏览器完成的(例如使用浏览器用户代理)。