scrapy框架核心知识Spider,Middleware,Item Pipeline,scrapy项目创建与启动,Scrapy-redis与分布式

scrapy项目创建与启动

创建项目

在你的工作目录下直接使用命令:

复制代码
scrapy startproject scrapytutorial

运行后创建了一个名为scrapytutorial的爬虫工程

创建spider

在爬虫工程文件内,运行以下命令:

复制代码
scrapy genspider quotes

创建了名为quotes的爬虫

修改爬虫代码,实现自己想要的爬虫逻辑

启动爬虫

在爬虫项目目录下,运行:

复制代码
scrapy crawl quotes

即可运行爬虫

Spider

在scrapy中,网站的链接配置抓取逻辑解析逻辑都是在spider内配置。

start_requests

分析以下简单的爬虫代码:

python 复制代码
import scrapy

class HttpbinspiderSpider(scrapy.Spider):
    # 定义 Spider 的名称
    name = "httpbinspider"
    
    # 设置允许爬取的域名
    allowed_domains = ["www.httpbin.org"]
    
    # 定义起始 URL
    start_uri = 'https://www.httpbin.org/get'

    # 定义 Spider 的起始请求
    def start_requests(self):
        # 使用循环生成多个请求,这里生成了 1 到 5 的 offset 参数
        for offset in range(1, 6):
            url = self.start_uri + f'?offset={offset}'
            
            # 生成请求,并指定回调函数为 parse
            # 同时将 offset 通过 meta 传递给回调函数
            yield scrapy.Request(url, callback=self.parse, meta={'offset': offset})

    # 定义数据处理逻辑
    def parse(self, response):
        # 打印 offset 和响应文本
        print(f"===============offset {response.meta['offset']}=========")
        print(response.text)
        
        # 打印 meta 数据,这里包含了在 start_requests 中传递的 offset
        print(response.meta)

这里我重写了start_requests方法,使用scrapy.Request构造了5个GET请求,并使用yield方法发送到下载器用于下载,同时指定了响应的解析回调函数,并通过meta参数传递offset参数。

复制代码
简要说明:
name:定义 Spider 的名称。
allowed_domains:定义允许爬取的域名。
start_uri:定义起始 URL。
start_requests:生成起始请求,使用循环生成多个带有不同 offset 参数的请求,每个请求的回调函数是 parse。
parse:处理响应的回调函数,打印 offset、响应文本和 meta 数据。

spider发送GET请求

使用scrapy.Request(url=url)

scrapy.Request(method='GET',url=url)

发送GET请求,查询参数建议拼接在url内。

spider发送POST请求

相关推荐
万粉变现经纪人4 天前
如何解决pip安装报错ModuleNotFoundError: No module named ‘cuml’问题
python·scrapy·beautifulsoup·pandas·ai编程·pip·scipy
hui函数4 天前
scrapy框架-day02
后端·爬虫·python·scrapy
专注API从业者6 天前
Scrapy 集成 JD API:一种高效且合规的商品数据采集方案
大数据·数据库·scrapy
小白学大数据15 天前
Scrapy框架实战:大规模爬取华为应用市场应用详情数据
开发语言·爬虫·python·scrapy·华为
xxxtanta19 天前
【无标题】temp
scrapy
小白学大数据20 天前
Scrapy 框架实战:构建高效的快看漫画分布式爬虫
开发语言·分布式·爬虫·python·scrapy
猫头虎1 个月前
用 Python 写你的第一个爬虫:小白也能轻松搞定数据抓取(超详细包含最新所有Python爬虫库的教程)
爬虫·python·opencv·scrapy·beautifulsoup·numpy·scipy
5171 个月前
Scrapy爬虫集成MongoDB存储
爬虫·scrapy·mongodb
万粉变现经纪人1 个月前
如何解决pip安装报错ModuleNotFoundError: No module named ‘keras’问题
人工智能·python·深度学习·scrapy·pycharm·keras·pip
一勺菠萝丶1 个月前
零基础掌握 Scrapy 和 Scrapy-Redis:爬虫分布式部署深度解析
redis·爬虫·scrapy