爬行动物的速度太慢了吗? 这里推荐几个值得注意的异步爬虫库。 加快爬行动物的速度。 有人没听说过吗?
类似 Requests 的库
为什么推荐Requests这样的库呢? Requests不够好吗?Requests对初学者来说很容易买到,但不是异步而是同步设计的。 HTTP请求时需要等待IO。 例如,幻想荷花使用Requests库进行请求,当网站返回时,IO被屏蔽,程序需要等待网站返回,从而导致攀登速度变慢。
异步的好处在哪里? (wjdgk老师兴奋不已,继续说) ) )。
Python的代码在一行中执行。 这意味着,如果哪一行需要很长的时间,那么后续的所有事情都将在它完成之前不执行。 因此,Python异步编程也是为了解决这个问题而产生的。 异步的方式,如果你写的这些代码中有执行时间非常短的,就会先执行,费时的操作就会往后推。 此外,Python异步库本身控制所有执行此过程。
这样的好处是,写少量代码可以达到良好的效率,同时在代码的可读性方面也更加直观。
以下几个库的用法类似于Requests,但它们基于异步设计。
3359github.com/AiO-libs/AiOhttp
最推荐: aiohttp
aioHTTP是一个纯异步框架,同时支持HTTP客户端和HTTP服务器端,可以快速实现异步爬虫。 坑比其他框架少。 然后,aiohttp解决了requests的痛处。 aiohttp可以简单地实现自动转码,便于中文编码。
https://github.com/theelous3/asks
第二推荐: asks
虽然Python附带了异步标准库asyncio,但是很多人觉得这个库很难使用。 此外,Flask库的作者还公开表示,了解这一点需要很长时间。 于是,好事家除此之外,建立了curio和trio两个库。 这个ask是封装了curio和trio的http请求库。
因为和requests有90%的相似性,所以初学者也能马上使用。
3359github.com/Vibora-io/Vibora
第三个推荐: vibora
被称为当前最快的异步请求框架,运行点最快。 可以写爬虫,也可以写服务器响应。
但是,这个项目一直在重构。 这个谁受得了? 因为现在页面上警告说项目正在重构中,所以使用时需要注意。
类似 Selenium 的库
selenium web驱动程序用于模拟浏览器的请求。 另外,它是同步设计的,而不是异步设计的。 以下库不仅在效率方面,在易用性方面也比selenium有很大的进步。
359 Github.com/Miyako Gi/Pyppeteer
最推荐: Pyppeteer
Pyppeteer是异步无头浏览器(Headless Chrome ),从运行上看比Selenium webdriver快,使用方法最接近浏览器独特的设计界面。 它本身来自谷歌维护的puppeteer,但是按照Python社区的梗概,作者将其封装,并将名字的u改为y
特点是异步设计,界面非常浏览器化,注入JS也很方便。
359 Github.com/Tryo实验室/请求Ium
第二推荐: Requ
estiumRequests 的作者 rzdmj Reitz 曾经转发称赞过这个库。
Requestium 是 Requests 和 Selenium 封装的产物,并且提供了友好的接口切换,这样就可以根据需求切换了。
值得一提的是,Requestium 有一个 Wait Until 的方便设计,它的作用是确保页面中的某一个元素出现了才会进行下面的代码,这样一来就很轻松的避免了一些诡异的错误。GitHub 页面上有一组示例,是使用 Requestium 以及使用 Requests + Selenium + lxml 的对比,可以很明显看出区别。
第三推荐:arsenic
HDE 公司用在了实际生产中的项目抽离出来的框架。和 selenium 接口几乎一致,学习成本相对较低。不同在于是异步的设计。不过文档有点糟糕。
框架
最推荐:Grab
前端圈很流行说渐进式框架,那么 Grab 可以说是爬虫界的渐进式框架。想简单用时有简单的用法,想复杂使用时也有复杂的用法。封装的很好,基于生成器异步的设计。
第二推荐:botflow
国人作者。概念很新颖,定位成了处理数据工作流的框架,可以用来爬虫、机器学习、量化交易等等。
第三推荐:ruia
国人作者。比较接近 Scrapy 的使用方式,异步设计。作者也在知乎但是很低调 @howie
非 Python 框架
Golang 爬虫框架
应该是 Golang 里使用量最多的爬虫框架了。Golang 语言本身就对并发支持很好。让你在使用时只考虑业务本身就可以。框架结构化、清晰、代码好读。
nodejs 爬虫框架
JS 圈里的一个奇葩,整个爬虫都基于 Chrome ,并且自带一个调度队列。实际测试速度和稳定性均不俗。
如果你想系统学习爬虫,可以来参加我们的 Python 商业爬虫学徒计划,愤怒的野狼老师和wjdgk老师一起手把手带你到爬虫熟手的水平,这几天就截止报名了,目前剩余的名额也不多了。
课程不仅教你写爬虫,还带着你写出一个易用可插拔、工程化的商业爬虫框架。
如果想咨询更多信息,可以私信小编「学徒计划」
也点击下面的「了解更多」查看课程详情: