热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python3Scrapy框架执行流程详解

本文详细介绍了如何在Python3环境下安装和使用Scrapy框架,包括常用命令和执行流程。Scrapy是一个强大的Web抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。

Scrapy 概述:Scrapy 是一个用 Python 开发的高效、高层次的屏幕抓取和 Web 抓取框架,用于从网页中提取结构化数据。它可以广泛应用于数据挖掘、监控和自动化测试等领域。

创建 Scrapy 项目

由于 PyCharm 不支持直接创建 Scrapy 项目,需要通过命令行进行相关操作:

  1. 安装 Scrapy 模块:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy
  2. 创建一个 Scrapy 项目:
    scrapy startproject my_project
  3. 生成一个爬虫:
    scrapy genspider example "example.com"
  4. 提取数据:在 Spider 中使用 XPath 或其他方法提取数据
  5. 保存数据:在 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

Scrapy 框架执行流程

  1. Spider 生成 Request 并发送给 Engine
  2. Engine 将 Request 发送给 Scheduler
  3. Scheduler 接收 Request 并将其返回给 Engine
  4. Engine 通过 Middleware 将 Request 发送给 Downloader
  5. Downloader 获取 Response 并通过 Middleware 返回给 Engine
  6. Engine 将 Response 返回给 Spider,Spider 的 parse() 方法处理 Response,解析出 Items 或新的 Requests
  7. Spider 将解析出的 Items 或 Requests 发送给 Engine
  8. Engine 将 Items 发送给 ItemPipeline,将 Requests 发送给 Scheduler(当 Scheduler 中没有未处理的 Requests 时,程序停止)

关于 yield 函数的介绍

简而言之,yield 的作用是将一个函数转换为一个生成器(generator)。带有 yield 的函数不再是普通函数,而是被 Python 解释器视为生成器。当函数执行到 yield 语句时,会返回一个迭代值,并在下一次调用时从上次暂停的地方继续执行。函数的本地变量在每次调用之间保持不变,直到函数执行完毕。

通俗地说,当函数执行到 yield 语句时,程序会暂停并返回 yield 后面的值。下一次调用时,从上次暂停的地方继续执行,直到函数执行结束。

以上是关于 Python 3 Scrapy 框架执行流程的详细介绍,希望对您有所帮助。如需了解更多相关内容,请继续关注编程笔记。


推荐阅读
author-avatar
kerra璐56_609
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有