Python做爬虫究竟比其他语言好在哪里呢?

爬虫需要处理的一些问题:
  • 发送HTTP请求
  • 解析HTML源码
  • 处理反爬虫机制
  • 效率
  • ......
说到底就是因为Python在处理上面的事情的时候有很多库,而且语法简洁,代码风骚,开发者的注意点可以集中在自己要做的事情上。
----------------------------------------
简单的不能再简单的 粗略不严谨 地回顾一下:

发送HTTP请求:
Python里我最喜欢用requests发送请求,发送请求的代码是这样的: 
requests.get(URL)  # GET
requests.post(URL, DATA)  # POST
requests.put / delete / head / ...  # 各种请求
# P.S.使用下面的代码处理Cookie更酸爽
requests.Session()
到目前为止我还没有找到别的语言有比这个更加简单的发送HTTP请求的方式了(不排除我见识短的可能性)。

解析HTML源码:
Python默认可以使用HtmlParser来解析HTML,如果你觉得用着不爽(确实用着不爽),可以有很多第三方库来优雅的做这些事情(lxml / BeautifulSoup / ...),甚至可以通过一些库(selenium等)来直接使用浏览器。你可以直接使用类似 body.div.a['href'] 这样简单到爆的语法取自己需要的内容。

处理反爬虫机制:
还是Python的requests库,它可以很方便的套上一个代理IP:
request = requests.Session()
request.proxies = ....
效率:
爬虫的效率问题基本不在解析信息的速度上,网络IO的时间其实才是大头。比如你请求网页花了500ms,相应的你的解析速度是1ms还是10ms已经不重要了。

其他还有很多地方就不一一总结了,简而言之,写爬虫来讲,Python相对于其它语言的优势在于有足够简介的语法和足够多的库支持,开发效率很高,而且运行效率方面,网络IO的时间已经大大冲淡了Python的效率问题。

用Python可以1个人做5个人的事情,只是多用10倍的机器,多么划算。

摘自知乎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值