首页 > 解决方案 > 禁用 CSS 时无法收集网站源代码

问题描述

感谢您查看这个问题!

我正在自学如何收集网络数据。

目标是收集城市内“booking(dot)com”列表的评论。我正在使用 requests 库来收集源代码并找到有用的数据。酒店的所有评论都不在列表的源代码中,但是我找到了一种访问某些酒店评论列表的方法,链接配方适用于所有列表。它指向“查看评论”选项卡的简化(无 CSS)版本。

问题是,用于收集源代码的函数返回一个带有评论列表链接的空列表,但适用于其他地址。查看列表链接在浏览器中“手动”打开时有效。如何解决这个问题?

In: page ='https://www.booking.com/reviewlist.html?aid=679422&cc1=lt&pagename=gradiali&rows=10&amp'
download = requests.get(page)
decoded_content = download.content.decode('utf-8')
page_content = decoded_content.split('\n')
page_content

Out: ['']

谢谢,K。

标签: pythonmining

解决方案


解决了!发现请求功能可以将用户代理行发送到服务器,并使其“认为”网页已被浏览器打开。

page = hotels.iloc[0,1]
header = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
download = requests.get(page, headers=header)
decoded_content = download.content.decode('utf-8')
page_content = decoded_content.split('\n')
page_content

如果有人遇到此问题,请确保您尝试不同的用户代理,有些可以,有些不行:)


推荐阅读