Shiux
Shiux
文章50
标签36
分类7

文章分类

一言

文章归档

Python爬虫常用包

Python爬虫常用包

可用于爬虫的编程语言有不少,但Python绝对是其中的主流之一。下面就为大家介绍下Python在编写网络爬虫常常用到的一些包。

请求:实现 HTTP 请求操作

urllib - https://docs.python.org/zh-cn/3/library/urllib.html

一系列用于操作URL的功能。

requests - https://docs.python-requests.org/zh_CN/latest/

基于 urllib 编写的,阻塞式 HTTP 请求库,发出一个请求,一直等待服务器响应后,程序才能进行下一步处理。

aiohttp - https://docs.aiohttp.org/en/stable/

基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。

httpx - https://www.python-httpx.org/

全功能 HTTP 客户端,提供同步和异步 API,并支持 HTTP/1.1 和 HTTP/2。

解析:从网页中提取信息

Beautiful Soup - https://www.crummy.com/software/BeautifulSoup/bs4/doc/

html 和 XML 的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。

中文文档

pyquery - https://pyquery.readthedocs.io/en/latest/

jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。

lxml - https://lxml.de/

支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。

tesserocr - https://tesseract-ocr.github.io/

在遇到验证码(图形验证码为主)的时候,可直接用 OCR 进行识别。

feedparser - https://pythonhosted.org/feedparser/

通用 feed 解析器。

Readability - https://readability-python-library.readthedocs.io/en/latest/

它提供了对Parser API和Reader API的访问

存储:Python 与数据库交互

PyMysql - https://pymysql.readthedocs.io/en/latest/

纯 Python 实现的 MySQL 客户端操作包。

PyMongo - https://pymongo.readthedocs.io/en/stable/

MongoDB官方开发的操作MongoDB数据库的包。

redis - https://redis-py.readthedocs.io/en/stable/

用于连接 redis 数据库的包。

aioredis - https://aioredis.readthedocs.io/en/latest/

基于asyncio为Redis提供简单清晰的接口。

框架

Scrapy - https://docs.scrapy.org/en/latest/

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

Portia - https://portia.readthedocs.io/en/latest/index.html

可视化爬取网页内容。

PySpider - http://docs.pyspider.org/en/latest/

一个强大的爬虫系统。

Ruia - https://www.howie6879.cn/ruia/

基于asyncio和aiohttp的异步爬虫框架,目标在于让开发者编写爬虫尽可能地方便快速。

开源地址

Newspaper - https://newspaper.readthedocs.io/en/latest/

提取新闻、文章以及内容分析。

Grab - https://grab.readthedocs.io/en/latest/

你可以构建各种复杂的web爬虫,从简单的5行脚本到复杂的异步网站爬虫处理数百万个网页。

Cola - https://github.com/qinxuye/cola/wiki

一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高。

自动化

selenium - https://www.selenium.dev/documentation/

自动化测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。

中文文档

MechanicalSoup - https://mechanicalsoup.readthedocs.io/en/stable/

用于自动和网络站点交互的 Python 库。

Web 框架

Flask - https://flask.palletsprojects.com/en/2.0.x/

轻量级的 web 服务程序,简单,易用,灵活,主要来做一些 API 服务。做代理时可能会用到。

Django - https://docs.djangoproject.com/zh-hans/3.2/

一个 web 服务器框架,提供了一个完整的后台管理,引擎、接口等,使用它可做一个完整网站。

FastAPI - https://fastapi.tiangolo.com/zh/

用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。

Masonite - https://docs.masoniteproject.com/

非常适合初学者开发他们的第一个 Web 应用程序。

Tornado - https://www.tornadoweb.org/en/stable/

通过使用非阻塞网络 I/O,Tornado 可以扩展到数万个打开的连接,使其成为长轮询、WebSockets 和其他需要与每个用户建立长期连接的应用程序的理想选择。

web2py - http://www.web2py.com/books/default/chapter/35

目前功能最全的开源web框架之一。

Quixote - http://quixote.ca/

灵活和高性能的web框架。

本文作者:Shiux
本文链接:https://blog.shiux.com/article/python-crawler-commonly-used-packages/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可