吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1296|回复: 8
收起左侧

[求助] scrapy爬虫自定义下载中间件

[复制链接]
三木零 发表于 2021-7-17 16:34
scrapy的下载中间件我看了教程说:
process_request(self, request, spider)方法返回一个response对象就不会去调用其他下载中间件的组件
可是这个方法都没有response参数我怎么返回一个response对象
找了好久也没有找到答案

但是返回一个None或者不会返回则会去调用process_response(self, request, response, spider)方法
这是源代码:
[Asm] 纯文本查看 复制代码
class IPProxyDownloaderMiddleware(object):
    IP_PROXY = [

    ]

    def process_request(self, request, spider):
        print("调用了请求中间件")
        print(request)
        for i in default_settings.DOWNLOADER_MIDDLEWARES:
            print(i)
        return None

    def process_response(self, request, response, spider):
        print("调用了响应中间件")
        print(response.text)
        return response

运行结果是这样的:
--------------------------------------------------------------------
[Asm] 纯文本查看 复制代码
爬虫开启
调用了请求中间件
<GET http://www.xinfadi.com.cn/marketanalysis/0/list/1037.shtml>
调用了系统的中间件
调用了响应中间件
正在写入第1037页数据

--------------------------------------------------------------------
我怎么让他不去调用系统的中间件呢,或者说这个request方法是满足了什么条件才会去运行当前中间件的response方法
求解

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

QingYi. 发表于 2021-7-17 16:49
 楼主| 三木零 发表于 2021-7-17 17:07
QingYi. 发表于 2021-7-17 16:49
https://doc.scrapy.org/en/latest/intro/tutorial.html
送你一本秘籍

我看了有一会了,实在是理解不了明明process_request方法没有这个response参数,他怎么返回一个response对象
QingYi. 发表于 2021-7-17 17:25
三木零 发表于 2021-7-17 17:07
我看了有一会了,实在是理解不了明明process_request方法没有这个response参数,他怎么返回一个response ...

你吃完苹果是不是会把果核吐出来?  处理完请求是不是会把对应的处理完的resp给你?
kk159 发表于 2021-7-17 17:28
重写一下MIDDLEWARES
kk159 发表于 2021-7-17 17:31
QingYi. 发表于 2021-7-17 17:25
你吃完苹果是不是会把果核吐出来?  处理完请求是不是会把对应的处理完的resp给你?

我就是不吐,未尝不可
 楼主| 三木零 发表于 2021-7-17 20:16
QingYi. 发表于 2021-7-17 17:25
你吃完苹果是不是会把果核吐出来?  处理完请求是不是会把对应的处理完的resp给你?

这个倒是知道,就是他文档的那句返回一个response响应就会去处理下一个url请求,他那个返回response响应是指process_response返回的还是,process_request返回的
CCQc 发表于 2021-7-17 21:59
52爬虫,感谢分享
Talrity 发表于 2021-7-17 22:29
感谢分享,爬虫自定义下载
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 01:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表