首页 > 代码库 > web data scraping的各种解决方案

web data scraping的各种解决方案

对于互联网人来说,web data scraping (web数据采集)已经成为一个迫切而又实在的需求。在如今这个开源的时代,问题往往不在于是否有解决方案,而是如何选择适合你的解决方案,因为总是有很多潜在的方案供你选择。web data scraping当然也不例外,笔者认为,我们至少有四种类型的方案可以选择,

1. web scraping software

专用的数据采集软件不需要你编写任何代码,你只需要配置一些信息,例如采集的目标网址、兴趣字段等等。然而,学习如何使用这些软件却是一项非常费力的事情,大部分都需要有一定的技术背景,常常需要了解的技术有:xpath, html, regular expression。笔者列举几款这方面的软件如下, 

  • 火车头采集器----支持输出到各种数据库
  • A1 Website Scraper------ 支持输出到csv文件;
  • bget web data extraction----- 支持输出到数据库和csv文件;

更多这方面的软件信息,可以参考这份文档: collections of web scraping software and server

 

2. web scraping framework

scraping framework可能是developer的最佳选择,因为其功能强大且效率高,而且有适用于不同平台的framework可供选择,例如:

  • scrapy, python平台
  • upton, ruby平台
  • pismo, ruby平台
  • nokogiri, ruby平台
  • node.io, node.js平台
  • crawler, node.js平台

笔者认为,python在数据处理方面具有强大的优势,更重要的是,python也非常适合实际产品的开发,笔者执着而坚定地推荐scrapy作为web scraping的首选.

 

3. web scraping service

如果你只是想获得数据,而又不愿意劳心费神的去学习具体的scraping技术,那么一家可靠的web scraping service服务商可能是你最好的选择,比较知名的web scraping service有如下几个:

  • http://80legs.com/services.html
  • http://www.grepsr.com/
  • http://scrapinghub.com/
  • http://www.connotate.com/
  • http://scrapinghub.com/

 

4. 其他的选择

Selenium 原本是浏览器自动化测试工具,但是也可以用于web scraping。 如果你采集的网页内容是由javascript自动生成的,那么你可能需要Selenium, 因为其他的scraping方案中的html parser往往都不支持javascript,例如scrapy。另外,有很多网站禁止scraping, 这个时候你也需要Selenium, 因为Selenium完全是模拟人的浏览行为,Selenium本质上是工作于浏览器之上的。

当然,我们也可以选择很多基于javascript的scraping方案,例如PhantomJS 就是一种非常好的选择,PhantomJS本质上也是模拟了浏览器。