scrapy 可以像 Selenium 一样控制和显示浏览器吗?
Can scrapy control and show a browser like Selenium does?
当我使用 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 来处理他们想要处理的一些页面。
搭建动态网站的爬虫系统不是一件容易的事。虽然您可以使用网络浏览器自动程序(如 selenium
), or event when you can integrate selenium with nutch (by using nutch-selenium
)。这些解决方案仍然难以开发、难以测试和难以管理会话,因为我们仍然 "translate" 我们的流程使用语言(例如 java 或 python)
我想有一个解决这个问题的新方法。我们可以将本机 java 脚本代码注入浏览器(通过扩展或附加组件),而不是使用 Web 浏览器自动化程序。这种方法的优点是我们可以轻松注入第三方库(如 jquery
(对于 dom 选择器),Run.js
(对于复杂的过程)和浏览器支持的 API)。并且我们可以在java脚本世界中使用调试工具和测试框架。
我刚刚构建了一个用于抓取动态网站的系统并且它运行良好(与 nutch-selenium 比较)。
当我使用 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 来处理他们想要处理的一些页面。
搭建动态网站的爬虫系统不是一件容易的事。虽然您可以使用网络浏览器自动程序(如 selenium
), or event when you can integrate selenium with nutch (by using nutch-selenium
)。这些解决方案仍然难以开发、难以测试和难以管理会话,因为我们仍然 "translate" 我们的流程使用语言(例如 java 或 python)
我想有一个解决这个问题的新方法。我们可以将本机 java 脚本代码注入浏览器(通过扩展或附加组件),而不是使用 Web 浏览器自动化程序。这种方法的优点是我们可以轻松注入第三方库(如 jquery
(对于 dom 选择器),Run.js
(对于复杂的过程)和浏览器支持的 API)。并且我们可以在java脚本世界中使用调试工具和测试框架。
我刚刚构建了一个用于抓取动态网站的系统并且它运行良好(与 nutch-selenium 比较)。