您当前的位置:首页 > 互联网教程

Python有哪些常见的,好用的爬虫框架

发布时间:2025-05-18 06:42:37    发布人:远客网络

Python有哪些常见的,好用的爬虫框架

一、Python有哪些常见的,好用的爬虫框架

1、由于项目需求收集并使用过一些爬虫相关库,做过一些对比分析。以下是我接触过的一些库:

2、Beautiful Soup。名气大,整合了一些常用爬虫需求。缺点:不能加载JS。

3、Scrapy。看起来很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。

4、mechanize。优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。

5、selenium。这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

6、cola。一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高,不过值得借鉴。

7、对于简单的需求,比如有固定pattern的信息,怎么搞都是可以的。

8、对于较为复杂的需求,比如爬取动态页面、涉及状态转换、涉及反爬虫机制、涉及高并发,这种情况下是很难找到一个契合需求的库的,很多东西只能自己写。

9、还有,采用现有的Python爬虫框架,相比与直接使用内置库,优势在哪?因为Python本身写爬虫已经很简单了。

10、third party library可以做到built-in library做不到或者做起来很困难的事情,仅此而已。还有就是,爬虫简不简单,完全取决于需求,跟Python是没什么关系的。

二、Python什么爬虫库好用

1、aiohttp:是纯粹的异步框架,同时支持HTTP客户端和服务端,可以快速实现异步爬虫,并且其中的aiohttp解决了requests的一个痛点,它可以轻松实现自动转码,对于中文编码就很方便了。

2、asks:Python自带一个异步的标准库asyncio,但这个库很多人觉得并不好用,而里面的ask则是封装了curio和trio的一个http请求库。用起来和

3、Requests 90%相似,新手也可以很快上手。

4、vibora:号称是现在最快的异步请求框架,跑分是最快的。写爬虫、写服务器响应都可以用。但这个项目一直在重构,现在页面上还挂着项目正在重构的警告,使用需谨慎。

5、Pyppeteer:是异步无头浏览器,从跑分来看比Selenium+webdriver快,使用方式是最接近于浏览器的自身的设计接口的。它本身是来自

6、Google维护的puppeteer,但是按照Python社区的梗,作者进行了封装并且把名字中的u改成了y。

7、Grab:是很流行的渐进式框架,Grab可以说是爬虫界的渐进式框架,又十分简单的用法,封装的也很好,是基于生成器异步的设计。

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

9、ruia:比较接近Scrapy的使用方式,异步设计。

三、Python写爬虫都用到什么库

Python爬虫,全称Python网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或脚本,主要用于抓取证券交易数据、天气数据、网站用户数据和图片数据等,Python为支持网络爬虫正常功能实现,内置了大量的库,主要有几种类型。下面本篇文章就来给大家介绍。

Python爬虫网络库主要包括:urllib、requests、grab、pycurl、urllib3、httplib2、RoboBrowser、MechanicalSoup、mechanize、socket、Unirest for Python、hyper、PySocks、treq以及aiohttp等。

Python网络爬虫框架主要包括:grab、scrapy、pyspider、cola、portia、restkit以及demiurge等。

●lxml:C语言编写高效HTML/ XML处理库。支持XPath。

●cssselect:解析DOM树和CSS选择器。

●pyquery:解析DOM树和jQuery选择器。

●BeautifulSoup:低效HTML/ XML处理库,纯Python实现。

●html5lib:根据WHATWG规范生成HTML/ XML文档的DOM。该规范被用在现在所有的浏览器上。

●feedparser:解析RSS/ATOM feeds。

●MarkupSafe:为XML/HTML/XHTML提供了安全转义的字符串。

●xmltodict:一个可以让你在处理XML时感觉像在处理JSON一样的Python模块。

●xhtml2pdf:将HTML/CSS转换为PDF。

●untangle:轻松实现将XML文件转换为Python对象。

●difflib:(Python标准库)帮助进行差异化比较。

●Levenshtein:快速计算Levenshtein距离和字符串相似度。

●fuzzywuzzy:模糊字符串匹配。

●ftfy:自动整理Unicode文本,减少碎片化。

●tablib:一个把数据导出为XLS、CSV、JSON、YAML等格式的模块。

●textract:从各种文件中提取文本,比如 Word、PowerPoint、PDF等。

●messytables:解析混乱的表格数据的工具。

●rows:一个常用数据接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT:将来还会提供更多!)。