【问题标题】:Scrapy or Selenium or Mechanize to scrape web data?Scrapy 或 Selenium 或 Mechanize 来抓取 Web 数据?
【发布时间】:2014-01-23 05:35:53
【问题描述】:

我想从网站上抓取一些数据。

基本上,该网站有一些表格显示并显示大约 50 条记录。要获得更多记录,用户必须单击某个按钮,该按钮可以进行 ajax 调用获取并显示接下来的 50 条记录。

我以前了解 Selenium webdriver(Python)。我可以在 Selenium 中很快做到这一点。但是,Selenium 更像是一种自动化测试工具,而且速度很慢。

我做了一些研发,发现使用 Scrapy 或 Mechanize,我也可以做同样的事情。

我应该为此选择 Scrapy 还是 Mechanize 或 Selenium ?

【问题讨论】:

  • 你真的在寻找意见。这不是本网站的主要目的。关于这些选项,您有什么特别的问题吗?
  • 我真的很困惑,因为我不知道其他两种技术。
  • 使用 javascript 抓取网站会变得非常棘手。 Scrapy 提供了比 Mechanize 更好的大规模网络爬取和解析功能,但在这两种情况下,要抓取像您这样的网站,您必须对网站的功能进行逆向工程(什么请求触发按钮、参数是什么、cookie、有效负载等)并在您的代码中重现它。
  • 你可能会发现 selenium 使用 webdriver.PhantomJS 作为驱动程序比 webdriver.Firefox 更快

标签: selenium-webdriver web-scraping scrapy mechanize


【解决方案1】:

我建议您结合使用 Mechanize 和 ExecJS (https://github.com/sstephenson/execjs) 来执行您可能遇到的任何 JavaScript 请求。我已经将这两种宝石结合使用了很长一段时间,它们做得很好。

您应该选择它而不是 Selenium,因为与必须在无头浏览器中呈现整个页面相比,它会快得多。

【讨论】:

    【解决方案2】:

    我肯定会选择 Scrapy。如果您无法处理 javascript,您可以尝试使用 Scrapy + splash。 Scrapy 是迄今为止我所知道的最快的网络抓取工具。 祝你好运!

    【讨论】:

      猜你喜欢
      • 2019-10-27
      • 2021-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2017-05-12
      相关资源
      最近更新 更多