php和python写爬虫-可以写爬虫的那么多,为什么只有python火了?
原标题:可以写爬虫的那么多,为什么只有python火了?
网络爬虫:
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
通俗的讲,爬虫就是能够自动访问互联网并将网站内容下载下来的的程序或脚本,类似一个机器人,能把别人网站的信息弄到自己的电脑上,再做一些过滤,筛选,归纳,整理,排序等等。
可以做爬虫的语言:PHP,JAVA,C#,C++,Python,但是为什么这么多可以写爬虫的只有python火了呢?请看看他们怎么说.
姜康:
我用 PHP 和 Python 都写过爬虫和正文提取程序。
最开始使用 PHP 所以先说说 PHP 的优点:
1.语言比较简单,PHP 是非常随意的一种语言。写起来容易让你把精力放在你要做的事情上,而不是各种语法规则等等。
2.各种功能模块齐全,这里分两部分:
1.网页下载:curl 等扩展库;
2.文档解析:dom、xpath、tidy、各种转码工具,可能跟题主的问题不太一样,我的爬虫需要提取正文,所以需要很复杂的文本处理,所以各种方便的文本处理工具是我的大爱。;
总之容易上手。
缺点:
1.并发处理能力较弱:由于当时 PHP 没有线程、进程功能,要想实现并发需要借用多路服用模型,PHP 使用的是 select 模型。实现其来比较麻烦,可能是因为水平问题我的程序经常出现一些错误,导致漏抓。
再说说 Python:
优点:
1.各种爬虫框架,方便高效的下载网页;
2.多线程、进程模型成熟稳定,爬虫是一个典型的多任务处理场景,请求页面时会有较长的延迟,总体来说更多的是等待。多线程或进程会更优化程序效率,提升整个系统下载和分析能力。
3.GAE 的支持,当初写爬虫的时候刚刚有 GAE,而且只支持 Python ,利用 GAE 创建的爬虫几乎免费,最多的时候我有近千个应用实例在工作。
缺点:
1.对不规范 HTML 适应能力差:举个例子,如果一个页面里面同时有 GB18030 字符集的中文和 UTF-8 字符集的中文,Python 处理起来就没有 PHP 那么简单,你自己需要做很多的判断工作。当然这是提取正文时的麻烦。
Java 和 C++ 当时也考察过,相对脚本语言比较麻烦,所以放弃。
总之,如果开发一个小规模的爬虫脚本语言是个各方面比较有优势的语言。如果要开发一个复杂的爬虫系统可能 Java 是个增加选项, C++ 我感觉写个模块之类的更加适合。对于一个爬虫系统来说,下载和内文解析只是基本的两个功能。真正好的系统还包括完善的任务调度、监控、存储、页面数据保存和更新逻辑、排重等等。爬虫是一个耗费带宽的应用,好的设计会节约大量的带宽和服务器资源,并且好坏差距很大。
儒小逸:
我用c#,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提供了简洁的文档处理功能,能用极短的代码完成大部分文档的处理。
其实以上功能很多语言和工具都能做,但是用python能够干得最快,最干净。Life is short, u need python.
冲最后一句"Life is short, u need python’,立马在当当上买了本python的书!以前就膜拜过python大牛,一直想学都扯于各种借口迟迟没有开始。。
py用在linux上很强大,语言挺简单的。
NO.1 快速开发(唯一能和python比开发效率的语言只有rudy)语言简洁,没那么多技巧,所以读起来很清楚容易。
NO.2跨平台(由于python的开源,他比java更能体现"一次编写到处运行"
NO.3解释性( 无须编译,直接运行/调试代码)
NO.4构架选择太多(GUI构架方面 主要的就有 wxPython, tkInter, PyGtk, PyQt 。返回搜狐,查看更多
责任编辑:
php和python写爬虫-可以写爬虫的那么多,为什么只有python火了?相关推荐
- Python爬虫不会?戳一下,小编一步步教你写一个简单的爬虫
写在前面 网络爬虫又称网络蜘蛛,是指按照某种规则在网络上爬取所需内容的脚本程序.众所周知,每个网页通常包含其他网页的入口,网络爬虫则通过一个网址依次进入其他网址获取所需内容. 优先申明:我们使用的py ...
- python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载
从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载Ehco 5 个月前 本来只是准备做一个爬起点小说名字的爬虫,后来想了一下,为啥不顺便把小说的内容也爬下来呢?于是我就写了这个 ...
- [转载] Python新手写出漂亮的爬虫代码1——从html获取信息
参考链接: Python中从用户获取多个输入 Python新手写出漂亮的爬虫代码1 初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说&qu ...
- python为什么叫爬虫-可以写爬虫的那么多,为什么只有python火了?
原标题:可以写爬虫的那么多,为什么只有python火了? 网络爬虫: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 ...
- python爬虫代理的使用_从零开始写Python爬虫 --- 2.4 爬虫实践:代理的爬取和验证...
爬网站的时候,由于各种原因,ip被锁了,这个时候我们就需要通过代理来突破封锁.网上有很多代理网站,付费和免费的都有,这次我们就来写一个scrapy爬虫,爬一些免费的代理下来用. 目标分析: 本次爬取了 ...
- 爬虫小白第一课、从安装python到写出第一个爬虫程序、Pycharm安装详解
本文原文链接 ↑↑↑ 目录 1什么是python 2怎么安装python 3安装python编辑器 4"写"你的第一个爬虫 5小结 python爬虫现在挺火,一方面全民学pytho ...
- python为啥叫爬虫-可以写爬虫的那么多,为什么只有python火了?
原标题:可以写爬虫的那么多,为什么只有python火了? 网络爬虫: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的 ...
- 从零开始写Python爬虫 --- 1.5 爬虫实践: 获取百度贴吧内容
从零开始写Python爬虫 --- 1.5 爬虫实践: 获取百度贴吧内容 Ehco 5 个月前 经过前期大量的学习与准备,我们重要要开始写第一个真正意义上的爬虫了.本次我们要爬取的网站是:百度贴吧,一 ...
- python获取实时基金数据由银河证券提供_我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量...
原标题:我用Python写了个金融数据爬虫,半小时干了组里实习生一周的工作量 最近,越来越多的研究员.基金经理甚至财务会计领域的朋友,向小编咨询:金融人需要学Python么? 事实上在2019年,这已 ...
最新文章
- (转)动态SQL和PL/SQL的EXECUTE IMMEDIATE选项
- 设计模式之Builder(建造者)(转)
- WmS详解(一)之token到底是什么?基于Android7.0源码
- 云炬60s看世界20211128
- Java中HashMap遍历的两种方式
- Linux CentOS 6.5 + Apache + Mariadb + PHP环境搭建
- WCF系列教程之WCF客户端调用服务
- 神经网络人口预测matlab,BP神经网络预测(人口)程序(matlab)
- 旺财速啃H5框架之Bootstrap(六)
- 数据库和缓存一致性分析
- 【嵌入式】非操作系统下GPIO口控制器及LED灯编程
- 基于Redis的微博关注与粉丝
- #pragma预处理指令详解
- C++中rapidxml用法及例子
- C模拟实现点分十进制IP转换
- OpenCV C++安装和配置
- 电气EPLAN电气图纸设计
- C编译中的语法检查和语义检查
- python画五角星和六角星程序_python画五角星和六角星程序
- 基于战舰V3的4.3寸电容触摸屏
热门文章
- ES JVM使用如果超过75%就会GC较多,导致ES索引性能下降
- MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
- 使用 collections 来创建类似元组对象
- python3 sha 系列 hex 加密 以sha256为例
- Android车载开发总结
- .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)
- 24.二叉树中和为某一值的路径
- 最短路模板 - Floyd / Dijkstra
- Linux系统中退出vim的编辑器3种情况
- T-SQL 控制流语句