爬虫---scrapy结构介绍及response的属性和方法-scrapy_092_58tc

Scrapy是一个用于创建Web爬虫的开源和跨平台的Python框架。它的设计目的是提取结构化数据,即Web页面上的数据。

Scrapy的主要组件包括:

  • 引擎(Engine):用来处理整个系统的数据流处理,负责数据在不同组件之间的流动。
  • 调度器(Scheduler):用来接收引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址)的优先队列, 由它来决定下一个要抓取的网址是什么.
  • 下载器(Downloader):用于下载网页内容,并将网页内容返回给爬虫。
  • 爬虫(Spiders):爬虫是主要做事情的组件,用于解析Downloader返回的响应(Response),从中提取Item(即提取的数据)和新的请求。
  • 项目管道(Item Pipeline):负责处理爬取的数据,如清理数据、验证数据、持久化数据(例如存储到数据库)。
  • 下载器中间件(Downloader Middlewares):对Scrapy的请求和响应进行处理。
  • 爬虫中间件(Spider Middlewares):对爬虫的响应和请求进行处理。

Response对象包含了一个网页的内容及其相关信息,常用的属性和方法有:

  • url:获取该response的请求的URL。
  • status:获取HTTP状态码。
  • headers:获取响应头。
  • body:获取响应体(字节字符串)。
  • text:获取响应体(Unicode字符串)。
  • encoding:获取编码方式。
  • request:获取这个响应对应的请求。

例如,以下代码展示了如何在Scrapy爬虫中使用这些属性和方法:




import scrapy
 
class MySpider(scrapy.Spider):
    name = 'example.com'
    start_urls = ['http://www.example.com']
 
    def parse(self, response):
        # 提取响应的URL
        print('Response URL:', response.url)
 
        # 获取HTTP状态码
        print('Status:', response.status)
 
        # 获取响应头
        print('Headers:', response.headers)
 
        # 获取响应体(字节字符串)
        print('Body:', response.body)
 
        # 获取响应体(Unicode字符串)
        print('Text:', response.text)
 
        # 获取编码方式
        print('Encoding:', response.encoding)
 
        # 获取这个响应对应的请求
        print('Request:', response.request)

以上代码是一个Scrapy爬虫的简单例子,它会打印出给定网页的URL、状态码、头部、正文、文本内容、编码方式和请求信息。这些属性和方法对于理解和分析爬虫所获取的数据是非常有用的。

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日