【发布时间】:2015-11-03 23:09:05
【问题描述】:
当我使用 Selenium 时,我可以看到浏览器 GUI,是否有可能与 scrapy 或 scrapy 严格基于命令行有关?
【问题讨论】:
当我使用 Selenium 时,我可以看到浏览器 GUI,是否有可能与 scrapy 或 scrapy 严格基于命令行有关?
【问题讨论】:
不,scrapy 不支持。
Scrapy 是为网络爬虫设计的,而 Selenium 是用于浏览器自动化测试的。如果您为网络爬虫的每个请求打开一个浏览器,这将花费大量资源。
如果你打算抓取动态内容,可以参考这里:Can scrapy be used to scrape dynamic content from websites that are using AJAX?
【讨论】:
Scrapy 本身不控制浏览器。
但是,您可以从 Scrapy 爬虫启动 Selenium 实例。有些人像这样设计他们的 Scrapy 爬虫。他们可能只使用 Scrapy 处理大多数页面,但会触发 Selenium 来处理他们想要处理的一些页面。
【讨论】:
为动态网站构建爬虫系统并非易事。虽然您可以使用 Web 浏览器自动化程序(如 selenium),或者当您可以将 selenium 与 nutch 集成时(通过使用 nutch-selenium)。这些解决方案仍然难以开发、测试和管理会话,因为我们仍然将我们的流程“翻译”成语言(例如 java 或 python)
我想一个新的方法来解决这个问题。我们可以将原生 javascript 代码注入浏览器(通过扩展程序或附加组件),而不是使用 Web 浏览器自动化程序。这种方法的优点是我们可以轻松地注入第三方库(如jquery(用于 dom 选择器),@ 987654326@(复杂流程)和浏览器支持的API)。并且我们可以在javascript世界中领先调试工具和测试框架。
我刚刚构建了一个用于抓取动态网站的系统,并且效果非常好(与 nutch-selenium 相比)。
【讨论】: