Python Scrapy框架HTTP代理的配置与调试

本文分为两部分:

一、HTTP代理的逻辑

做过python爬虫的都知道,HTTP代理的设置时要在发送请求前设置好,那HTTP代理的逻辑点在哪里呢?实际上,只需要在Scrapy 的项目结构中添加就好,具体代码如下:

# Scrapy 内置的 Downloader Middleware 为 Scrapy 供了基础的功能, 
# 定义一个类,其中(object)可以不写,效果一样 
class SimpleProxyMiddleware(object): 
    # 声明一个数组 
    proxyList = ['你购买的HTTP代理地址'] 

    # Downloader Middleware的核心方法,只有实现了其中一个或多个方法才算自定义了一个Downloader Middleware def process_request(self, request, spider): 
        # 随机从其中选择一个,并去除左右两边空格 
        proxy = random.choice(self.proxyList).strip() 
        # 打印结果出来观察 
        print("this is request ip:" + proxy) 
        # 设置request的proxy属性的内容为代理ip 
        request.meta['proxy'] = proxy 

    # Downloader Middleware的核心方法,只有实现了其中一个或多个方法才算自定义了一个Downloader Middleware def process_response(self, request, response, spider): 
    # 请求失败不等于200 
    if response.status != 200: 
        # 重新选择一个代理ip 
        proxy = random.choice(self.proxyList).strip() 
        print("this is response ip:" + proxy) 
        # 设置新的代理ip内容 
        request.mete['proxy'] = proxy 
        return request
    return response

每个 Downloader Middleware 定义了一个或多个方法的类,核心的方法有如下三个:

1.process_request(request, spider)

2.process_response(request,response, spider)

3.process_exception(request, exception, spider)

找到 setting.py 文件中的这块区域:

#DDWNLQADER_MIDDLEWARES = {
#        *images.middlewares.ImagesDownloaderMiddleware": 543,
    #    *images middlewares,LocalProxyMiddleware*: 100
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值