【问题标题】:Combining Scrapy with CasperJS将 Scrapy 与 CasperJS 相结合
【发布时间】:2017-02-25 00:52:17
【问题描述】:

当我使用 Scrapy-Splash 尝试 Splash 时,它不支持像真正的浏览器一样导航。它只呈现 HTML,但是当它单击一个按钮时,它不会呈现它导航到的下一页。

根据我的简单研究,只有 CasperJS 支持使用导航进行网页抓取。但是,是否可以结合 Scrapy 和 CasperJS

【问题讨论】:

  • 改用 Selenium
  • 但是据我所知,当单击按钮时,Selenium 无法模拟导航 URL。这就是我考虑 CasperJS 的原因
  • “模拟”是什么意思
  • 我的意思是,当一个按钮被点击时,它会触发页面在浏览器中的所有请求,然后打开下一个页面,就像在真正的浏览器中一样打开

标签: python web-scraping scrapy casperjs scrapy-splash


【解决方案1】:

您将浏览器与测试框架混淆了,Selenium 确实做到了这一点,但不是 Firefox,而是使用 PhantomJS 作为无头浏览器(这是 CasperJS 使用的)。

Click method

# Assume the button has the ID "submit" :)
driver.find_element_by_id("submit").click()

alexce answer on scrapy with selenium

如果您需要请求的内容,请使用 BrowserMob 之类的东西作为代理。

【讨论】:

  • 是否可以使用 Splash 来实现? Splash 有 Scrapy Splash,这是一个将 Splash 与 Scrapy 结合的官方库
  • 取决于问题的复杂性,如果您需要在浏览网页时返回元素,则并非如此。如果您需要导航到某个地方并从单个页面返回元素,这是可能的并且推荐使用,但它的脚本是在 LUA 中。
猜你喜欢
  • 1970-01-01
  • 2019-12-02
  • 2012-05-19
  • 2020-05-04
  • 1970-01-01
  • 2014-10-23
  • 2011-08-11
  • 2011-11-13
  • 2013-04-13
相关资源
最近更新 更多