写爬虫用什么语言好?
做爬虫需要什么语言,个人觉得任何语言,只要具备访问网络的标准库,都可以用来写爬虫。
对于刚刚接触爬虫的新手来说,经常会纠结于用是不是非得用Python 来做爬虫,但是无论是 JAVA,PHP 还是其他更低级语言,都可以很方便的实现爬虫的需要。
各种语言写爬虫相对于Python,区别在于静态语言出现错误的可能性很低,低级语言运行速度会更快一些,但是Python 的优势在于库更丰富,框架更加成熟,对于新手来说,在熟悉库和框架实际上需要花费不少的时间。
那么,到底用什么语言写爬虫最好呢?我们先来对比一下几种常用语言对于写爬虫的优缺点:
C,C++
优点:高效率,快速,适合通用搜索引擎做全网爬取。缺点:开发慢,写起来又臭又长,例如:天网搜索源代码。PHP:
优点:语言比较简单,PHP 是非常随意的一种语言。写起来容易让你把精力放在你要做的事情上,而不是各种语法规则等等。各种功能模块齐全,网页下载有curl 等扩展库;文档解析有dom、xpath、tidy、各种转码工具。总之容易上手。缺点:并发处理能力较弱:由于当时 PHP 没有线程、进程功能,要想实现并发需要借用多路服用模型,PHP 使用的是 select 模型,实现其来比较麻烦。脚本语言:Perl, Python, Java, Ruby。
简单,易学,良好的文本处理能方便网页内容的细致提取,但效率往往不高,适合对少量网站的聚焦爬取C#:
貌似信息管理的人比较喜欢的语言,在这里就不介绍了。反正我是没用他来写过爬虫。
对于写爬虫,新手总想找一种一劳永逸的方法,觉得把握住一种方法,语言和框架,就可以长时间高枕无忧了,其实最好的学习方式不是样的,建议还是大胆尝试主流框架,在不大重要的学习项目中进行尝试。多使用几次才会知道优势劣势。总之,不管你使用哪一种爬虫手段,只要达到所需要的效果就可以了。
写爬虫用什么语言好?
个人还是不能免俗,在这里推荐用Python来写爬虫。
上面说了,很多语言都能用来写爬虫,但为什么最终还是选择Python呢?
首先,Python具有以下特点:
跨平台,对Linux和windows都有不错的支持。科学计算,数值拟合:Numpy,Scipy可视化:2d:Matplotlib(做图很漂亮), 3d: Mayavi2 复杂网络:Networkx统计:与R语言接口:Rpy交互式终端网站的快速开发Python写爬虫具有以下优点:
1.各种爬虫框架,方便高效的下载网页;
2.多线程、进程模型成熟稳定,爬虫是一个典型的多任务处理场景,请求页面时会有较长的延迟,总体来说更多的是等待。多线程或进程会更优化程序效率,提升整个系统下载和分析能力。
3.GAE 的支持,当初写爬虫的时候刚刚有 GAE,而且只支持 Python ,利用 GAE 创建的爬虫几乎免费,最多的时候我有近千个应用实例在工作。
总结:
对于一个爬虫系统来说,下载和内文解析只是基本的两个功能。真正好的系统还包括完善的任务调度、监控、存储、页面数据保存和更新逻辑、排重等等。爬虫是一个耗费带宽的应用,好的设计会节约大量的带宽和服务器资源,并且好坏差距很大。
写爬虫是一边写,一边测试。测试不过再改改。这个过程用 python 写起来最方便。而且 python 相关的库也是最方便,有 request, jieba, redis, gevent, NLTK, lxml, pyquery, BeautifulSoup, Pillow. 不论是最简单的爬虫还是巨复杂的爬虫都轻松搞定。
写爬虫用什么语言好?
个人建议首选用python写爬虫比较好。
大家有什么好的见解,欢迎评论区交流讨论,共同学习提高!