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 天前
如何避免被目标网站识别为爬虫?
爬虫·python·scrapy·flask·scipy
爱吃泡芙的小白白5 天前
爬虫学习——Scrapy
爬虫·python·scrapy·学习记录
愚公搬代码6 天前
【愚公系列】《Python网络爬虫从入门到精通》056-Scrapy_Redis分布式爬虫(Scrapy-Redis 模块)
爬虫·python·scrapy
水w8 天前
【Python爬虫】详细入门指南
开发语言·爬虫·python·scrapy·beautifulsoup
水w11 天前
【Python爬虫】简单案例介绍3
开发语言·爬虫·python·scrapy·beautifulsoup
q5673152312 天前
使用Scrapy库结合Kotlin编写爬虫程序
爬虫·scrapy·kotlin
小白学大数据12 天前
Scrapy结合Selenium实现搜索点击爬虫的最佳实践
开发语言·chrome·爬虫·selenium·scrapy
q5673152312 天前
利用Ruby的Typhoeus编写爬虫程序
开发语言·爬虫·scrapy·ruby
q5673152315 天前
使用Java的HttpClient实现文件下载器
java·开发语言·爬虫·scrapy
q5673152316 天前
用Dispatch库的爬虫程序爬取图片网站
开发语言·爬虫·python·scrapy