公司网站自己可以做吗,WordPress启用不了主题,成都网站改版公司,图片瀑布流代码wordpressScrapy官网#xff1a;https://scrapy.org/
什么是Scrapy Scrapy 是一个基于 Python 的快速的高级网页抓取和网页爬取框架#xff0c;用于抓取网站并从其页面中提取结构化数据。它可用于多种用途#xff0c;从数据挖掘到监控和自动化测试。 Scrapy核心组件 1. Scrapy Engin…Scrapy官网https://scrapy.org/
什么是Scrapy Scrapy 是一个基于 Python 的快速的高级网页抓取和网页爬取框架用于抓取网站并从其页面中提取结构化数据。它可用于多种用途从数据挖掘到监控和自动化测试。 Scrapy核心组件 1. Scrapy EngineScrapy引擎 Scrapy 引擎是整个系统的核心负责控制数据流在所有组件之间的流动。它从调度器获取请求发送给下载器处理然后将下载器返回的响应交给爬虫处理。2. Scheduler调度器 调度器负责接收引擎发来的请求并进行排序然后将这些请求发送给引擎。调度器可以处理优先级并且支持去重机制以避免重复抓取。3. Downloader下载器 下载器负责向互联网上的服务器发送请求并接收响应。Scrapy 下载器是高度异步的能够高效地处理大量请求。4. Spiders爬虫 爬虫是用户定义的类负责处理下载器返回的响应从中提取数据Item或进一步生成请求。每个爬虫定义了要抓取的域名和处理响应的逻辑。5. Item数据项 Item 是一种简单的数据容器用于存储从网页中提取的数据。Item 类似于字典但提供了额外的保护和方法。6. Item Pipeline数据管道 数据管道是一个序列化系统用于处理和存储从爬虫中提取的数据。每个管道组件负责处理数据项的一部分例如数据清洗、验证或存储。7. Downloader Middlewares下载中间件 下载中间件是介于调度器和下载器之间的钩子用于处理请求和响应。它们可以修改或扩展请求和响应的处理流程例如设置代理、修改请求头等。8. Spider Middlewares爬虫中间件 爬虫中间件是介于引擎和爬虫之间的钩子用于处理爬虫输入和输出的响应和结果。它们可以修改或扩展爬虫的处理流程例如添加额外的日志记录、处理异常等。 Scrapy扩展组件 1. Feed Exports数据导出 Scrapy 支持将抓取的数据导出为多种格式如 JSON、CSV、XML并可以配置导出的细节如字段顺序、编码等。2. Telnet ConsoleTelnet 控制台 Telnet 控制台提供了一个实时监控和调试爬虫的工具允许开发者在爬虫运行时进行交互式调试。3. Logging日志 Scrapy 内置了强大的日志系统用于记录运行时的各种信息如调试信息、错误消息等。日志系统可以配置不同的日志级别和输出格式。4. Extensions扩展 扩展模块用于增强 Scrapy 的功能例如自动重试失败的请求、监控爬虫性能等。开发者可以自定义扩展模块以满足特定需求。5. Stats Collectors统计收集器 统计收集器用于收集和记录爬虫运行时的各种统计信息如请求数量、响应时间等。统计信息可以用于优化和调试爬虫。 组件交互流程 初始请求爬虫从 start_urls 生成初始请求并通过引擎Engine发送给调度器Scheduler。请求调度调度器Scheduler将请求排序并发送给下载器Downloader。请求下载下载器Downloader向目标网站Internet发送请求并获取响应。响应处理下载器Downloader将响应发送给引擎Engine进而交给爬虫Spiders处理。数据提取爬虫Spiders从响应中提取数据项并生成新的请求如果有。数据处理提取的数据项通过数据管道Item Pipeline进行处理和存储。 安装Scrapy
pip install scrapy Scrapy项目目录结构说明 Scrapy 项目的结构较为标准以下是一个典型的 Scrapy 项目的目录结构图示及其简要说明供方便理解。 myproject/
│
├── myproject/ # 项目目录主目录
│ ├── __init__.py
│ ├── items.py # 定义 Item 类数据结构
│ ├── middlewares.py # 自定义中间件
│ ├── pipelines.py # Item 处理管道
│ ├── settings.py # 项目设置文件
│ ├── spiders/ # 存放爬虫的目录
│ │ ├── __init__.py
│ │ ├── example_spider.py # 定义爬虫
│
├── scrapy.cfg # Scrapy 配置文件
│
└── README.md # 项目的说明文件可选创建Scrapy项目
使用 scrapy startproject 命令来创建一个新的 Scrapy 项目。打开终端或命令行进入你想要创建项目的目录并运行以下命令
# scrapy startproject 项目名称
scrapy startproject myproject创建爬虫
在项目根目录中你可以使用 scrapy genspider 命令创建新的爬虫。以下命令将创建一个名为 baidu 的爬虫用于抓取 www.baidu.com 的域名
# scrapy genspider 爬虫名称 允许爬取的域名
scrapy genspider baidu www.baidu.com完整目录结构如下 爬虫文件内容说明 解析方法解析response
# 解析方法response爬取起始url的响应
def parse(self, response):# 解析示例with open(baidu.html, wb) as f:f.write(response.body) 运行爬虫
运行爬虫之前需要修改 settings.py 配置文件的配置如下 使用 scrapy crawl 命令来运行你的爬虫。以下命令会启动名为 baidu 的爬虫
# scrapy crawl 爬虫名称
scrapy crawl baidu