首页>比特动态>网络爬虫的四种语言
网络爬虫的四种语言

 一、网络爬虫定义  

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 随着大数据的不断发展,爬虫这个技术慢慢走入人们的视野,可以说爬虫是大数据应运而生的产物。

二、几种适合爬虫的语言

  1. Phantomjs

    Vitaly 发文表示,Chrome 59 将支持 headless 模式,用户最终会转向去使用它。Chrome 比 PhantomJS 更快,更稳定,也不会像 PhantomJS 这种疯狂吃内存 但并不是意味着这个语言的终结,这个语言还是可以用的

  2. casperJS

    CasperJs 是一个基于 PhantomJs 的工具,其比起 PhantomJs 可以更加方便的进行 navigation,个人对此种语言不太了解不做过多阐述

  3. Nodejs

    nodejs适合垂直爬取,分布式的爬取较为困难,对某些功能的支持较弱,所以不建议用

  4. Python

    本人喜欢python这种语言,也是强烈推荐使用python,尤其是其语言的爬虫框架scrapy特别值得大家学习,支持xpath 可以定义多个spider,支持多线程爬取等等。

    此外还有c++,PHP,java等语言都可以用来爬取网页,爬虫因人而异。

三、python爬虫的优点

   代码简单明了,适合根据实际情况快速修改代码,网络上的内容,布局随时都会变,python的快速开发比较有优势。如果是写好不再修改或修改少,其他性能高的语言更有优势。

1.抓取网页本身的接口相比与其他静态编程语言,如java,c#,C++,python抓取网页文档的接口更简洁;相比其他动态脚本语言,如perl,shell,python的urllib2包提供了较为完整的访问网页文档的API。(当然ruby也是很好的选择)此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这是我们需要模拟user agent的行为构造合适的请求,譬如模拟用户登陆、模拟session/cookie的存储和设置。在python里都有非常优秀的第三方包帮你搞定,如Requests,mechanize

2.网页抓取后的处理抓取的网页通常需要处理,比如过滤html标签,提取文本等。python的beautifulsoap提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。