当前位置:首页 > 天道酬勤 > 正文内容

python爬虫常用的库(node爬虫库)

张世龙2021年12月22日 05:47天道酬勤610

爬行动物的速度太慢了吗? 这里推荐几个值得注意的异步爬虫库。 加快爬行动物的速度。 有人没听说过吗?

类似 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

estium

Requests 的作者 rzdmj Reitz 曾经转发称赞过这个库。

Requestium 是 Requests 和 Selenium 封装的产物,并且提供了友好的接口切换,这样就可以根据需求切换了。

值得一提的是,Requestium 有一个 Wait Until 的方便设计,它的作用是确保页面中的某一个元素出现了才会进行下面的代码,这样一来就很轻松的避免了一些诡异的错误。GitHub 页面上有一组示例,是使用 Requestium 以及使用 Requests + Selenium + lxml 的对比,可以很明显看出区别。

https://github.com/HDE/arsenic

第三推荐:arsenic

HDE 公司用在了实际生产中的项目抽离出来的框架。和 selenium 接口几乎一致,学习成本相对较低。不同在于是异步的设计。不过文档有点糟糕。

框架

https://github.com/lorien/grab

最推荐:Grab

前端圈很流行说渐进式框架,那么 Grab 可以说是爬虫界的渐进式框架。想简单用时有简单的用法,想复杂使用时也有复杂的用法。封装的很好,基于生成器异步的设计。

https://github.com/kkyon/botflow

第二推荐:botflow

国人作者。概念很新颖,定位成了处理数据工作流的框架,可以用来爬虫、机器学习、量化交易等等。

https://github.com/howie6879/ruia

第三推荐:ruia

国人作者。比较接近 Scrapy 的使用方式,异步设计。作者也在知乎但是很低调 @howie

非 Python 框架

https://github.com/gocolly/colly

Golang 爬虫框架

应该是 Golang 里使用量最多的爬虫框架了。Golang 语言本身就对并发支持很好。让你在使用时只考虑业务本身就可以。框架结构化、清晰、代码好读。

https://github.com/yujiosaka/headless-chrome-crawl

nodejs 爬虫框架

JS 圈里的一个奇葩,整个爬虫都基于 Chrome ,并且自带一个调度队列。实际测试速度和稳定性均不俗。


如果你想系统学习爬虫,可以来参加我们的 Python 商业爬虫学徒计划,愤怒的野狼老师和wjdgk老师一起手把手带你到爬虫熟手的水平,这几天就截止报名了,目前剩余的名额也不多了。

课程不仅教你写爬虫,还带着你写出一个易用可插拔、工程化的商业爬虫框架。

框架的基本结构 from 愤怒的野狼老师

如果想咨询更多信息,可以私信小编「学徒计划」

也点击下面的「了解更多」查看课程详情:

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26843.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。