我曾经使用python脚本(urllib)抓取一个网站。 看来网站现在阻止了我的请求,每当我使用脚本请求网页时,我会得到一个带有一些JS的html,但没有通常的数据。从我的浏览器访问网站工作正常。我尝试更改“用户代理”以适合我的浏览器使用的那个,但它没有帮助。我观察到的一个奇怪的行为是,从浏览器访问页面后,我也可以从脚本中访问它。
所以我的问题是:
谢谢!
答案 0 :(得分:1)
没有太多细节,听起来像网站更新,包括一个JavaScript加载器。 urllib
无法处理javascript,因此无法继续操作。 (纯粹猜测在这里)
网站可以通过各种方式阻止抓取工具访问它,包括设置一些Javascript或更新cookie,或以某种方式修改会话以通过第一次测试。它完全取决于网站,因此您必须手动调查。
通常的解决方案是使用像Selenium
这样的javascript识别抓取工具,它实际上使用本地安装的Firefox
,Chrome
或IE
浏览器来打开页面,模拟点击项目。您还可以使用PhantomJS
处理下载的页面。
关于此问题的帖子很多,但是可以给你一个起点:Web-scraping JavaScript page with Python