简而言之: 本指南演示了如何使用crawl4ai 的人工智能提取和 Pydantic 数据模型构建电子商务抓取工具。 抓取工具异步检索产品列表(名称、价格)和详细的产品信息(规格、评论)。
在 Google Colab 上访问完整代码
厌倦了电子商务数据分析的传统网络抓取的复杂性?本教程使用现代 Python 工具简化了该过程。我们将利用 crawl4ai 进行智能数据提取,并利用 Pydantic 进行稳健的数据建模和验证。
为什么选择 Crawl4AI 和 Pydantic?
- crawl4ai:使用人工智能驱动的提取方法简化网络爬行和抓取。
- Pydantic:提供数据验证和模式管理,确保抓取的数据结构化且准确。
为什么瞄准 Tokopedia?
印尼主要电商平台Tokopedia就是我们的例子。 (注:作者是印度尼西亚人,也是该平台的用户,但不隶属于该平台。)这些原则适用于其他电子商务网站。 这种抓取方法对于对电子商务分析、市场研究或自动数据收集感兴趣的开发人员来说是有益的。
是什么让这种方法与众不同?
我们不依赖复杂的CSS选择器或XPath,而是利用crawl4ai基于LLM的提取。这提供:
- 增强了对网站结构变化的适应能力。
- 更清晰、更结构化的数据输出。
- 减少维护开销。
设置您的开发环境
首先安装必要的软件包:
%pip install -U crawl4ai %pip install nest_asyncio %pip install pydantic
对于笔记本中的异步代码执行,我们还将使用 nest_asyncio
:
import crawl4ai import asyncio import nest_asyncio nest_asyncio.apply()
使用 Pydantic 定义数据模型
我们使用 Pydantic 来定义预期的数据结构。 以下是型号:
from pydantic import BaseModel, Field from typing import List, Optional class TokopediaListingItem(BaseModel): product_name: str = Field(..., description="Product name from listing.") product_url: str = Field(..., description="URL to product detail page.") price: str = Field(None, description="Price displayed in listing.") store_name: str = Field(None, description="Store name from listing.") rating: str = Field(None, description="Rating (1-5 scale) from listing.") image_url: str = Field(None, description="Primary image URL from listing.") class TokopediaProductDetail(BaseModel): product_name: str = Field(..., description="Product name from detail page.") all_images: List[str] = Field(default_factory=list, description="List of all product image URLs.") specs: str = Field(None, description="Technical specifications or short info.") description: str = Field(None, description="Long product description.") variants: List[str] = Field(default_factory=list, description="List of variants or color options.") satisfaction_percentage: Optional[str] = Field(None, description="Customer satisfaction percentage.") total_ratings: Optional[str] = Field(None, description="Total number of ratings.") total_reviews: Optional[str] = Field(None, description="Total number of reviews.") stock: Optional[str] = Field(None, description="Stock availability.")
这些模型充当模板,确保数据验证并提供清晰的文档。
抓取过程
刮刀分两个阶段运行:
1.抓取产品列表
首先,我们检索搜索结果页面:
async def crawl_tokopedia_listings(query: str = "mouse-wireless", max_pages: int = 1): # ... (Code remains the same) ...
2.正在获取产品详细信息
接下来,对于每个产品 URL,我们获取详细信息:
async def crawl_tokopedia_detail(product_url: str): # ... (Code remains the same) ...
结合各个阶段
最后,我们整合两个阶段:
async def run_full_scrape(query="mouse-wireless", max_pages=2, limit=15): # ... (Code remains the same) ...
运行爬虫
执行抓取工具的方法如下:
%pip install -U crawl4ai %pip install nest_asyncio %pip install pydantic
专业提示
- 速率限制:尊重 Tokopedia 的服务器;在大规模抓取请求之间引入延迟。
-
缓存:在开发过程中启用crawl4ai的缓存(
cache_mode=CacheMode.ENABLED
)。 - 错误处理:为生产使用实现全面的错误处理和重试机制。
- API 密钥: 将 Gemini API 密钥安全地存储在环境变量中,而不是直接存储在代码中。
后续步骤
这个刮刀可以扩展到:
- 将数据存储在数据库中。
- 监控价格随时间的变化。
- 分析产品趋势和模式。
- 比较多家商店的价格。
结论
crawl4ai 基于 LLM 的提取与传统方法相比显着提高了网页抓取的可维护性。 与 Pydantic 的集成确保了数据的准确性和结构。
在抓取之前始终遵守网站的robots.txt
和服务条款。
重要链接:
爬行4AI
- 官方网站:https://www.php.cn/link/1026d8c97a822ee171c6cbf939fe4aca
- GitHub 存储库:https://www.php.cn/link/62c1b075041300455ec2b54495d93c99
- 文档:https://www.php.cn/link/1026d8c97a822ee171c6cbf939fe4aca/mkdocs/core/installation/
皮丹蒂克
- 官方文档:https://www.php.cn/link/a4d4ec4aa3c45731396ed6e65fee40b9
- PyPI 页面:https://www.php.cn/link/4d8ab89733dd9a88f1a9d130ca675c2e
- GitHub 仓库:https://www.php.cn/link/22935fba49f7d80d5adf1cfa6b0344f4
注意:完整的代码可以在Colab笔记本中找到。 请随意尝试并根据您的具体需求进行调整。
以上是使用 Pydantic、Crawl 和 Gemini 构建异步电子商务网络爬虫的详细内容。更多信息请关注PHP中文网其他相关文章!

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

通过每天投入2小时的Python学习,可以有效提升编程技能。1.学习新知识:阅读文档或观看教程。2.实践:编写代码和完成练习。3.复习:巩固所学内容。4.项目实践:应用所学于实际项目中。这样的结构化学习计划能帮助你系统掌握Python并实现职业目标。

在两小时内高效学习Python的方法包括:1.回顾基础知识,确保熟悉Python的安装和基本语法;2.理解Python的核心概念,如变量、列表、函数等;3.通过使用示例掌握基本和高级用法;4.学习常见错误与调试技巧;5.应用性能优化与最佳实践,如使用列表推导式和遵循PEP8风格指南。

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

Python更适合数据科学和快速开发,C 更适合高性能和系统编程。1.Python语法简洁,易于学习,适用于数据处理和科学计算。2.C 语法复杂,但性能优越,常用于游戏开发和系统编程。

每天投入两小时学习Python是可行的。1.学习新知识:用一小时学习新概念,如列表和字典。2.实践和练习:用一小时进行编程练习,如编写小程序。通过合理规划和坚持不懈,你可以在短时间内掌握Python的核心概念。

Python更易学且易用,C 则更强大但复杂。1.Python语法简洁,适合初学者,动态类型和自动内存管理使其易用,但可能导致运行时错误。2.C 提供低级控制和高级特性,适合高性能应用,但学习门槛高,需手动管理内存和类型安全。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能