web data scraping的各种解决方案

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

1. web scraping software

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

更多这方面的软件信息,可以参考这份文档:        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有如下几个:

4. 其他的选择

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

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

web data scraping的各种解决方案,布布扣,bubuko.com

时间: 2024-10-14 05:19:05

web data scraping的各种解决方案的相关文章

mobile web retina 下 1px 边框解决方案

http://www.tuicool.com/articles/ZRv6bun 再谈mobile web retina 下 1px 边框解决方案 时间 2015-01-03 12:03:31  Hugo Web前端开发 原文  http://www.ghugo.com/css-retina-hairline/ 主题 WebKitiOSCSS 本文实际上想说的是ios8下 1px解决方案. 1px的边框在devicePixelRatio = 2的retina屏下会显示成2px,在iphone 6

web.input()和web.data() 遇到特殊字符

使用web.py的时候,web.input()和web.data() 遇到特殊字符,处理方式就会出现差异. web.input() 可以处理get和post方式传递的输入,对于特殊字符不会自动转码,hashlib.md5等函数如何处理还需要再研究. web.data() 仅可以传递post方式传递的输入,对于特殊字符会自动转码, hashlib.md5等函数也就可以完美准确地处理了. 例如: 用户输入了[email protected],使用web.input 接收到的就是[email prot

iOS ERROR: unable to get the receiver data from the DB 解决方案

这个错误通常发生在iOS7当中,可能是缓存的导致的问题. 解决步骤: 右击Finder,选择 Go to Folder 复制上:"~/Library/Application Support/iPhone Simulator/" 这回打开iPhone Simulator的文件夹,然后删除其中的7.x 文件夹 翻译编辑自:http://stackoverflow.com/a/22784390/3458781 iOS ERROR: unable to get the receiver dat

maven创建web项目的报错解决方案

在学习maven模块化构建项目的时候遇到了如下报错信息: web.xml is missing and <failOnMissingWebXml> is set to true .这时候需要右击项目-->Java EE Tools-->Generate Deployment Descriptor Stub.然后系统会在src/main/webapp/WEB_INF文件加下创建web.xml文件.错误解决! 如果你的工程不是web项目,那么还有另外一种解决方案,就是在pom文件中配置

HT for Web嵌入QtWebKit的客户端解决方案

HTML5已经足够强大,但很多应用还是需要独立桌面客户端的解决方案,毕竟能操作本地文件等功能还是很多工具类软件短期内无法完全采用云方案替代. 最近Adobe发布的http://brackets.io也是类似的应用,Brackets这样描述自己:An open source code editor for the web, written in JavaScript, HTML and CSS. 这样的描述在过去很难想象居然是编辑器的工具,如今采用WebKit嵌套各种壳的方案已让这类应用成为主流.

SQL2008安装时,“provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (.Net SqlClient Data Provider)” 错误的解决方案

错误提示: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接. (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) (.Net SqlClient Data Provider) 解决方案: 解决方法:开始->所有程序->Ms Sql Server->配置工具->sql server外围应用配置器->服

关于政府类web软件信息安全问题的解决方案 (一)

之前意识到了安全问题的重要性,于是就在网上找了一下安全问题的解决办法(主要是web应用以及政府网站方面的),问了一下同学的公司是怎么保证安全的,跟我说用的是shiro安全机制这个貌似好多公司都在用,网上也有很多教程. 1.绿盟 http://www.nsfocus.com.cn/index.html 这个中国第一个网络公司虽然不是什么世界500强,但是它的官网有个其他网络安全公司网站都没有的优点,就是有很多关于技术方面的论文和报告. 1.确保网络安全要有整体的方案,先看看绿盟的安全体系整改方案.

cxf , struts+spring中web.xml过滤url问题解决方案

在项目中配置webservice,查找wsdl时总是提示"HTTP Status 404 - There is no Action mapped for namespace / and action name ...",原来是因为web.xml中struts过滤器StrutsPrepareAndExecuteFilter自动拦截了该url的问题. 解决方案: 在struts.xml中增加一行: <constant name="struts.action.excludeP

移动Web开发的bug及解决方案

我目前移动Web开发遇到的bug以及解决方案(慢慢补充当中). 1.android4.0以上一部分手机的webview中,当canvas小于屏幕大小时,绘图时会出现重影,就是说一个图只绘制了一遍,却出现了两个. 解决方案: canvas外层的div需要设定属性style="overflow:visible;-webkit-transform: translateZ(0)";