作者:kerra璐56_609 | 来源:互联网 | 2024-11-12 10:51
本文详细介绍了如何在Python3环境下安装和使用Scrapy框架,包括常用命令和执行流程。Scrapy是一个强大的Web抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。
Scrapy 概述:Scrapy 是一个用 Python 开发的高效、高层次的屏幕抓取和 Web 抓取框架,用于从网页中提取结构化数据。它可以广泛应用于数据挖掘、监控和自动化测试等领域。
创建 Scrapy 项目
由于 PyCharm 不支持直接创建 Scrapy 项目,需要通过命令行进行相关操作:
- 安装 Scrapy 模块:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy
- 创建一个 Scrapy 项目:
scrapy startproject my_project
- 生成一个爬虫:
scrapy genspider example "example.com"
- 提取数据:在 Spider 中使用 XPath 或其他方法提取数据
- 保存数据:在 Pipeline 中处理并保存数据
常用命令
- 创建项目:
scrapy startproject project_name
- 进入项目:
cd project_name
- 创建爬虫:
scrapy genspider spider_name domain.com
- 生成文件:
scrapy crawl spider_name -o output.json
- 运行爬虫:
scrapy crawl spider_name
- 列出所有爬虫:
scrapy list
- 获取配置信息:
scrapy settings [options]
Scrapy 项目文件结构
scrapy.cfg
: 项目的配置文件
my_project/
: 项目的 Python 模块,存放核心代码
my_project/items.py
: 定义数据项的文件
my_project/pipelines.py
: 数据处理管道文件
my_project/settings.py
: 项目的设置文件,用于配置基本参数
my_project/spiders/
: 存放爬虫代码的目录
Scrapy 框架执行流程
- Spider 生成 Request 并发送给 Engine
- Engine 将 Request 发送给 Scheduler
- Scheduler 接收 Request 并将其返回给 Engine
- Engine 通过 Middleware 将 Request 发送给 Downloader
- Downloader 获取 Response 并通过 Middleware 返回给 Engine
- Engine 将 Response 返回给 Spider,Spider 的
parse()
方法处理 Response,解析出 Items 或新的 Requests
- Spider 将解析出的 Items 或 Requests 发送给 Engine
- Engine 将 Items 发送给 ItemPipeline,将 Requests 发送给 Scheduler(当 Scheduler 中没有未处理的 Requests 时,程序停止)
关于 yield 函数的介绍
简而言之,yield 的作用是将一个函数转换为一个生成器(generator)。带有 yield 的函数不再是普通函数,而是被 Python 解释器视为生成器。当函数执行到 yield 语句时,会返回一个迭代值,并在下一次调用时从上次暂停的地方继续执行。函数的本地变量在每次调用之间保持不变,直到函数执行完毕。
通俗地说,当函数执行到 yield 语句时,程序会暂停并返回 yield 后面的值。下一次调用时,从上次暂停的地方继续执行,直到函数执行结束。
以上是关于 Python 3 Scrapy 框架执行流程的详细介绍,希望对您有所帮助。如需了解更多相关内容,请继续关注编程笔记。