【问题标题】:Can scrapy control and show a browser like Selenium does?scrapy 可以像 Selenium 那样控制和显示浏览器吗?
【发布时间】:2015-11-03 23:09:05
【问题描述】:

当我使用 Selenium 时,我可以看到浏览器 GUI,是否有可能与 scrapy 或 scrapy 严格基于命令行有关?

【问题讨论】:

  • Scrapy 是一个抓取和网络爬取框架,而selenium 是用于网络浏览器自动化的,它们不一样,一个不能复制另一个。

标签: python selenium scrapy


【解决方案1】:

不,scrapy 不支持。

Scrapy 是为网络爬虫设计的,而 Selenium 是用于浏览器自动化测试的。如果您为网络爬虫的每个请求打开一个浏览器,这将花费大量资源。

如果你打算抓取动态内容,可以参考这里:Can scrapy be used to scrape dynamic content from websites that are using AJAX?

【讨论】:

    【解决方案2】:

    Scrapy 本身不控制浏览器。

    但是,您可以从 Scrapy 爬虫启动 Selenium 实例。有些人像这样设计他们的 Scrapy 爬虫。他们可能只使用 Scrapy 处理大多数页面,但会触发 Selenium 来处理他们想要处理的一些页面。

    【讨论】:

      【解决方案3】:

      为动态网站构建爬虫系统并非易事。虽然您可以使用 Web 浏览器自动化程序(如 selenium),或者当您可以将 selenium 与 nutch 集成时(通过使用 nutch-selenium)。这些解决方案仍然难以开发、测试和管理会话,因为我们仍然将我们的流程“翻译”成语言(例如 java 或 python)

      我想一个新的方法来解决这个问题。我们可以将原生 javascript 代码注入浏览器(通过扩展程序或附加组件),而不是使用 Web 浏览器自动化程序。这种方法的优点是我们可以轻松地注入第三方库(如jquery(用于 dom 选择器),@ 987654326@(复杂流程)和浏览器支持的API)。并且我们可以在javascript世界中领先调试工具和测试框架。

      我刚刚构建了一个用于抓取动态网站的系统,并且效果非常好(与 nutch-selenium 相比)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多