在 scrapy 中使用 ip 代理需要借助中间件的功能

首先在settings 中设置好中间件,中间件优先级数字越小越先被执行

'DOWNLOADER_MIDDLEWARES':{      
'spider.spider.middlewares.ProxyMiddleWare':,
'spider.spider.middlewares.SelenuimDownloaderMiddleware':
}

然后编写中间件,拦截请求设置代理

class ProxyMiddleWare(object):

    def process_request(self, request, spider):

        """ 对 request 加上proxy"""
proxy = RedisClient().pop_proxy().decode('utf-8')
print('---------this is request ip ----------:'+ proxy)
request.meta['proxy'] = proxy def process_response(self, request, response, spider): """ 对返回的 response 处理""" # 如果返回的 response 状态不是 , 重新生成当前的 request对象
if response.status != :
proxy = RedisClient().pop_proxy().decode('utf-8')
print('this is response ip:'+ proxy)
# 对当前 request 加上代理
return request return response

scrapy中使用 IP 代理的更多相关文章

  1. python爬虫中的ip代理设置

    设置ip代理是爬虫必不可少的技巧: 查看本机ip地址:打开百度,输入“ip地址”,可以看到本机的IP地址: 本文使用的是goubanjia.com里面的免费ip: 使用时注意要注意传输协议是http还 ...

  2. 在Scrapy中使用IP池或用户代理更新版(python3)

    middlewares.py # -*- coding: utf-8 -*- # 导入随机模块 import random # 导入有关IP池有关的模块 from scrapy.downloaderm ...

  3. 在Scrapy中使用IP池或用户代理(python3)

    一.创建Scrapy工程 scrapy startproject 工程名 二.进入工程目录,根据爬虫模板生成爬虫文件 scrapy genspider -l # 查看可用模板 scrapy gensp ...

  4. python使用ip代理抓取网页

    在抓取一个网站的信息时,如果我们进行频繁的访问,就很有可能被网站检测到而被屏蔽,解决这个问题的方法就是使用ip代理 .在我们接入因特网进行上网时,我们的电脑都会被分配一个全球唯一地ip地址供我们使用, ...

  5. scrapy实战9动态设置ip代理从数据库中随机获取一个可用的ip:

    在目录下创建tools(python package) 在tools中创建crawl_xici_ip.py文件写入代码如下: #coding=utf-8 import requests from sc ...

  6. selenium在scrapy中的使用、UA池、IP池的构建

    selenium在scrapy中的使用流程 重写爬虫文件的构造方法__init__,在该方法中使用selenium实例化一个浏览器对象(因为浏览器对象只需要被实例化一次). 重写爬虫文件的closed ...

  7. Scrapy学习篇(十二)之设置随机IP代理(IPProxy)

    当我们需要大量的爬取网站信息时,除了切换User-Agent之外,另外一个重要的方式就是设置IP代理,以防止我们的爬虫被拒绝,下面我们就来演示scrapy如何设置随机IPProxy. 设置随机IPPr ...

  8. python爬虫实战(三)--------搜狗微信文章(IP代理池和用户代理池设定----scrapy)

    在学习scrapy爬虫框架中,肯定会涉及到IP代理池和User-Agent池的设定,规避网站的反爬. 这两天在看一个关于搜狗微信文章爬取的视频,里面有讲到ip代理池和用户代理池,在此结合自身的所了解的 ...

  9. Scrapy中的UA池,代理池,以及selenium的应用

    UA池 代理池 selenium在Scrapy中的应用 UA池 - 下载中间件: - 下载中间件(Downloader Middlewares) 位于scrapy引擎和下载器之间的一层组件. - 作用 ...

随机推荐

  1. [Reversal 剧情设计] 序言

    想开发一个图形游戏已经很久了,这个寒假好不容易学了一些OpenGL知识,初步具备了开发图形游戏的能力,我觉得我可以开始了.当然,我的游戏并不是冷冰冰的PVE,肯定还需要一些剧情丰富色彩. 本来我的游戏 ...

  2. 吴裕雄 python 机器学习——数据预处理二元化OneHotEncoder模型

    from sklearn.preprocessing import OneHotEncoder #数据预处理二元化OneHotEncoder模型 def test_OneHotEncoder(): X ...

  3. layui+ajax+select

    1.看效果 2.前端代码 <div class="layui-form-item"> <label class="layui-form-label&qu ...

  4. Tomcat 和 JVM 性能调优总结

    Tomcat性能调优: 找到Tomcat根目录下的conf目录,修改server.xml文件的内容.对于这部分的调优,我所了解到的就是无非设置一下Tomcat服务器的最大并发数和Tomcat初始化时创 ...

  5. 【转载】 BIOS设置选项详细解释——CPU核心篇

    原文地址: http://kuaibao.qq.com/s/20180226A1G1OC00?refer=spider ---------------------------------------- ...

  6. IIS反向代理配置教程(最终完整版本)

    IIS代理配置教程 插件下载:https://download.csdn.net/download/song_yan_/11996489 一.安装反向代理插件 1.rewrite插件安装 (1) 双击 ...

  7. Jquery span标签的取值赋值

    //赋值 $("#spanid").html(value) //取值 $("#spanid").text()

  8. 总结String类的常用方法

    总结String类的常用方法 1. 获取字符串长度 public int length() 2. 获取字符串某一位置的字符 public char charAt(int index) 注意:字符串中第 ...

  9. MyBatis逆向工程的使用(非插件方式)

    一.概述 MyBatis是目前流行的优秀持久层框架,其逆向工程更是大大缩减了开发时间.所谓逆向工程,指的是mybatis根据数据库设计好的表,自动生成对应model.mapper及mapper.xml ...

  10. 使用在线编辑 svg 软件修改 svg 图片

    网站需要使用图标字体,但设计师给的图标大小有问题,故使用下面说陈述方法简单修改了一下.使用到的在线编辑软件地址为:https://editor.method.ac/ 问题: 注:至于如何使用图标字体( ...