Javascript 硒幻影可以';t抓取网站bot检测
我不能刮这个网站是python selenium phantomjs上请求的屏幕截图。我不知道他们是如何发现这是一个机器人的,但在图片上说需要javascript和验证码,也许还需要其他什么东西?我肯定不是以超人的速度刮,因为这是我的第一个要求,所以不是原因。另外,当我在浏览器上粘贴相同的请求时,它会指向我想要的页面,并且可以正常工作Javascript 硒幻影可以';t抓取网站bot检测,javascript,python,selenium,phantomjs,Javascript,Python,Selenium,Phantomjs,我不能刮这个网站是python selenium phantomjs上请求的屏幕截图。我不知道他们是如何发现这是一个机器人的,但在图片上说需要javascript和验证码,也许还需要其他什么东西?我肯定不是以超人的速度刮,因为这是我的第一个要求,所以不是原因。另外,当我在浏览器上粘贴相同的请求时,它会指向我想要的页面,并且可以正常工作 br = webdriver.PhantomJS('bin/phantomjs') br.set_window_size(1366, 200)
br = webdriver.PhantomJS('bin/phantomjs')
br.set_window_size(1366, 200)
br.get("website")
br.save_screenshot(x)
我现在开始工作了。我只是为了其他不这样做的人。启用javascript和假用户代理
cap = webdriver.DesiredCapabilities.PHANTOMJS
cap["phantomjs.page.settings.javascriptEnabled"] = True
cap["phantomjs.page.settings.loadImages"] = True
cap["phantomjs.page.settings.userAgent"] = 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0'
br = webdriver.PhantomJS('bin/phantomjs',desired_capabilities=cap)
一般来说,有帮助的事情:
- 标题应类似于普通浏览器,包括:
- 用户代理:使用最近的一个(请参阅),如果您发出多个请求,最好使用随机最近的一个(请参阅)
- 接受语言:类似于“en,en-US;q=0,5”(适应您的语言)
- 接受:标准格式类似于“text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8”
- 导航:
- 如果发出多个请求,请在它们之间放置一个随机超时
- 如果打开在页面中找到的链接,请相应地设置Referer标题
- 或者更好,模拟鼠标活动来移动、单击并跟随链接
- 应启用图像
- 应启用Javascript
- 检查是否在客户端javascript页面上下文中设置了“navigator.plugins”和“navigator.language”
- 检查您使用的客户端是否没有注入明显的javascript变量(如cdc、uuu噩梦…)
- 使用代理