学科分类
目录
网络爬虫

为什么选择Python做爬虫

截止到目前,网络爬虫的主要开发语言有Java,Python和C++,对于一般的信息采集需要,各种开发语言的差别不大,具体介绍如下:

  • C/C++

各种搜索引擎大多使用C/C++开发爬虫,可能是因为搜索引擎爬虫重要的是采集网站信息,对页面的解析要求不高。

  • Python

Python语言的网络功能强大,能够模拟登陆,解析JavaScript,短处是网页解析。Python写起程序来很便捷,尤其是对聚焦爬虫,目标网站经常变换,要根据目标的变化修改爬虫程序,使用Python开发就显得很方便。

  • Java

Java有很多解析器,对网页的解析支持很好,缺点是网络部分支持较差。

对于一般性的需求,无论Java还是Python都可以胜任。如果需要模拟登陆,对抗反爬虫则选择Python更方便。如果需要处理复杂的网页,解析网页内容生成结构化数据或者需要对网页内容进行精细解析则可以选择Java。

本书选择Python做为实现爬虫的语言,其主要考虑因素在于:

(1) 抓取网页本身的接口

相比其他动态脚本语言(如Perl、Shell),Python的urllib2包提供了较为完整的访问网页文档的API;相比与其他静态编程语言(如Java、C#、C++),Python抓取网页文档的接口更简洁。

此外,抓取网页有时候需要模拟浏览器的行为,很多网站对于生硬的爬虫抓取都是封杀的。这时我们需要模拟User Agent的行为构造合适的请求,譬如模拟用户登陆、模拟Session/Cookie的存储和设置。在Python里都有非常优秀的第三方包帮你搞定,如Requests或Mechanize。

(2) 网页抓取后的处理

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

其实以上功能很多语言和工具都能做,但是用Python能够干得最快、最干净,正如这句“Life is short,you need Python”。

(3) 开发效率高

因为爬虫的具体代码得根据网站不同而修改的,而Python这种灵活的脚本语言特别适合这种任务。

(4) 上手快

网络上Python的教学资源很多,便于大家学习,出现问题也很容易找到相关资料。另外,Python还有强大的成熟爬虫框架的支持,比如Scrapy。

Python语言本身也一直在发展,目前的稳定版本是Python3,它与Python2有着较大的区别。为了更好地适应未来的发展,在本书中,我们将使用Python3.0开发爬虫项目。

点击此处
隐藏目录