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请求

相关推荐
朱剑君9 天前
第三十天:Scrapy 框架-分布式
分布式·爬虫·scrapy
Minner-Scrapy13 天前
零知识证明与 ZK Rollups 详解
scrapy·区块链·网络爬虫·零知识证明
大叔是90后大叔1 个月前
scrapy在pipelines中获取项目根目录
python·scrapy
_曦1 个月前
Scrapy如何设置iP,并实现IP重用, IP代理池重用
爬虫·scrapy
m0_748255262 个月前
【头歌】Scrapy爬虫(二)热门网站数据爬取
爬虫·scrapy
小白学大数据2 个月前
Django多线程爬虫:突破数据抓取瓶颈
数据库·爬虫·scrapy·数据分析·django
声声codeGrandMaster2 个月前
Scrapy中间件的使用
python·scrapy·中间件
蹦蹦跳跳真可爱5892 个月前
Python----Python爬虫(Scrapy的应用:CrawlSpider 使用,爬取小说,CrawlSpider版)
爬虫·python·scrapy
百年੭ ᐕ)੭*⁾⁾2 个月前
scrapy爬取图片
爬虫·python·scrapy
jidawanghao2 个月前
scrapy 教程
scrapy