【发布时间】:2016-07-08 19:29:27
【问题描述】:
我需要抓取一个由 javascript 渲染的 AngularJS 应用程序的网页。该网站的开发人员在隐私浏览模式下检测到 Safari/Firefox 并禁止其使用,因此被删除。当您不处于私人模式时,该页面可与 Safari/Firefox 一起使用。
有趣的是,无论是否在隐私模式下使用 Chrome,都不会给出这样的警告。我使用的是 Scrapy+Selenium,但我真的希望在这个项目中使用 ScrapyJS/Splash。但是,看起来 Scrapy/Splash 组合受到了网站隐私浏览墙的影响。
是否可以告诉 Scrapy 使用 Chrome?我知道 Selenium 有很多驱动程序,并且关于如何使用每个驱动程序都有很好的记录,但是我找不到任何关于 Scrapy 是否支持其他浏览器或者其他人是否已经这样做的信息。 Google/SO 搜索对我来说也完全没有说明这一点。
【问题讨论】:
-
您是否尝试过更改用户代理? stackoverflow.com/questions/18920930/…
-
是的,我在 Scrapy
settings.py文件中试过这个,它似乎没有效果。我尝试了一些已知的 Chrome/Firefox/Safari 代理以及一些“Scrapy 做一个好公民”的用户代理。 -
你试过使用 selenium 的
chrome driver吗? -
对不起,如果我错了,但根据我一年多前对 Scrapy 的有限经验,据我所知,与 Selenium 不同,它并没有真正使用任何浏览器的后端。它只是使用 requests/twisted 发送 HTTP 请求,因此“使用带有 Scrapy 的浏览器 X”的想法似乎没有多大意义。我想你最好的办法是尝试 Selenium。
-
@Randy,从 Splash 2.0 开始,您可以在启动或运行时禁用私有模式。请参阅splash.readthedocs.org/en/stable/changes.html#id4 “现在可以在启动时使用命令行选项或在运行时使用 splash.private_mode_enabled 属性关闭私有模式;”
标签: python google-chrome selenium scrapy