apify/crawlee-python

Crawlee—A web scraping and browser automation library for Python to build reliable crawlers. Extract data for AI, LLMs, RAG, or GPTs. Download HTML, PDF, JPG, PNG, and other files from websites. Works with Parsel, BeautifulSoup, Playwright, and raw HTTP. Both headful and headless mode. With proxy rotation.

解决的问题

Crawlee for Python 是一个专为构建可靠、高性能的爬虫而设计的网页抓取和浏览器自动化库,能够绕过现代反机器人保护机制,并以类人方式运行。它简化了链接爬取、数据提取和以机器可读格式存储数据的过程,无需开发者处理请求管理与反机器人检测的技术复杂性。

工作原理

Crawlee 提供了 HTTP 爬取和无头浏览器自动化的统一接口。它提供两种主要爬虫类型:

  • BeautifulSoupCrawler:一种高效的无浏览器爬虫,使用 HTTP 库和 BeautifulSoup 解析 HTML,适用于静态内容。
  • PlaywrightCrawler:基于 Playwright 的无头浏览器爬虫,适用于需要执行 JavaScript 或用户交互的网站。

该库根据系统资源管理并行爬取,支持自动重试、代理轮换,并使用持久化队列存储 URL,确保爬取管道在中断后可从中断处恢复。

适用人群

适用于需要大规模从网页提取数据的开发者,特别是偏好现代 Python(3.10+)和异步编程(Asyncio)而非传统框架(如 Scrapy)的开发者。

主要亮点

  • 统一接口:一个库同时支持 HTTP 和无头浏览器爬取。
  • 基于 Asyncio:基于 Python 标准异步库构建,实现高性能。
  • 绕过反机器人保护:默认配置帮助爬虫表现得像人类,避免被检测到。
  • 状态持久化:在中断时保存进度,避免从头开始重启。
  • 集成工具:内置代理轮换、会话管理,以及可插拔的存储系统,用于表格数据和文件。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目