我正在尝试使用requests
和BeautifulSoup
来访问网页上的某些元数据。
可以访问一些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_data
和requests
获取BeautifulSoup
?
答案 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
您可以尝试重播请求,就好像它是由浏览器完成的(例如使用浏览器用户代理)。