简单实现ip代理,为了不卖广告,
请自行准备一个ip代理的平台
例如我用的这个平台,每次提取10个ip

从上面可以看到数据格式是文本,换行是\r\n,访问链接之后大概就是长这样的,scrapy里面的ip需要加上前缀http://
例如:http://117.95.41.21:34854

OK,那现在已经准备好了ip了,先给你们屡一下思路。

ip池和计数器放在setting文件

第一次请求的时候要填满ip池,所以在爬虫文件的start_requests函数下手

更换ip的地方是middlewares的下载器中间件类的process_request函数,因为每个请求发起前都会经过这个函数

  1. 首先是setting文件,其实就是加两句代码
count = {'count': 0}
ipPool = []

还有就是开启下载器中间件,注意是下面那个download的类,中间件的process_request函数的时候才能生效


  1. 下载器中间件的process_request函数,进行ip代理和固定次数更还ip代理池
 # 记得导包from 你的项目.settings import ipPool, countimport randomimport requestsdef process_request(self, request, spider):# 随机选中一个ipip = random.choice(ipPool)print('当前ip', ip, '-----', count['count'])# 更换request的ip----------这句是重点request.meta['proxy'] = ip# 如果循环大于某个值,就清理ip池,更换ip的内容if count['count'] > 50:print('-------------切换ip------------------')count['count'] = 0ipPool.clear()ips = requests.get('你的ip获取的地址')for ip in ips.text.split('\r\n'):ipPool.append('http://' + ip)# 每次访问,计数器+1count['count'] += 1return None

  1. 最后就是爬虫文件的start_requests函数,就是第一次发请求前要先填满ip池的ip
 # 记得导包from 你的项目.settings import ipPoolimport randomimport requestsdef start_requests(self):# 第一次请求发起前先填充一下ip池ips = requests.get('你的ip获取的地址')for ip in ips.text.split('\r\n'):ipPool.append('http://' + ip)

简单的ip代理以及固定次数就更换ip池就完成了

对上面的代码有什么疑问,可以评论区留言,我会及时回复

超简单的scrapy实现ip动态代理与更换ip相关推荐

  1. python ip动态代理_给自己的爬虫做一个简单的动态代理池

    使用代理服务器一直是爬虫防BAN最有效的手段,但网上的免费代理往往质量很低,大部分代理完全不能使用,剩下能用的代理很多也只有几分钟的寿命,没法直接用到爬虫项目中. 下面简单记录一下我用scrapy+r ...

  2. python—简单数据抓取三(简单IP地址代理、利用蘑菇代理实现IP地址代理刷新本地ip地址、利用蘑菇代理实现IP地址代理抓取安居客信息并实现多线程)

    学习目标: python学习二十三 -数据抓取三. 学习内容: 1.简单IP地址代理 2.利用蘑菇代理实现IP地址代理刷新本地ip地址 3.利用蘑菇代理实现IP地址代理抓取安居客信息并实现多线程 1. ...

  3. python ip动态代理_Scrapy 配置动态代理IP的实现

    应用 Scrapy框架 ,配置动态IP处理反爬. # settings 配置中间件 DOWNLOADER_MIDDLEWARES = { 'text.middlewares.TextDownloade ...

  4. python ip动态代理_动态代理服务器

    // 定义申请获得的appKey和appSecret String appkey = "XXXXXXXX"; String secret = "XXXXXXXXXXXXX ...

  5. python ip动态代理_Python实现爬取可用代理IP

    Python实现爬取可用代理IP,在实现爬虫时,动态设置代理IP可以有效防止反爬虫,但对于普通爬虫初学者需要在代理网站上测试可用代理IP.由于手动测试过程相对比较繁琐,且重复无用过程故编写代码以实现动 ...

  6. python ip动态代理_Python 爬虫设置动态代理

    爬虫的时候,我们用同一个ip反复爬一个网站有可能会被封,这时候就需要使用到代理ip 网上有免费的开放代理,但有些代理ip稳定性差要经常更换且有些爬取后就不可用了还要再筛查 除了免费的外可以向代理供应商 ...

  7. 代理模式及JDK动态代理(InvocationHandler)的简单实现与分析

    在慕课网上学习了讲解代理模式的一个课程--<模式的秘密--代理模式>,感叹于David老师屌炸天的PPT,同时,老师一步一步模仿JDK源码去写code,教我们去简单实现JDK中的动态代理, ...

  8. 使用Storm proxies动态代理IP海外代理服务器IP及端口怎么获取?

    获取海外代理服务器IP和端口的方法有多种,这里介绍两种常用的方法: 在代理服务提供商的网站上查找:一般来说,代理服务提供商都会在其官方网站上提供海外代理服务器的IP地址和端口信息.可以在网站上查找相应 ...

  9. 使用Storm proxies动态代理IP如何正确设置使用海外IP代理?

    正确设置使用海外IP代理需要以下几个步骤: 获取代理服务器的IP地址和端口号:可以在代理服务提供商的网站上或者代理IP池中获取相应的信息. 在计算机或移动设备上配置代理服务器:打开网络设置,找到代理服 ...

  10. JDK动态代理和Cglib的动态代理

    2019独角兽企业重金招聘Python工程师标准>>> 最简单的是静态代理方法,即代理模式,这里就不多啰嗦了.. 重点说一下JDK的动态代理和Cglib的动态代理吧 先说JDK的,需 ...

最新文章

  1. java如何解决跨站点请求伪造_AppScan漏洞扫描之-跨站点请求伪造
  2. weui 导航悬浮固定
  3. python全栈学习--django基础入门
  4. python遍历数据
  5. 华为否认窃密;贾跃亭陪许家印考察FF;谷歌或被罚95亿欧元 | 极客头条
  6. 2021杨铭杰高考成绩查询,谁知道汕头一中2007年高考成绩的概况
  7. 顺序查找(Linear Search)
  8. Windows Phone 8 蓝牙编程
  9. 使用js实现移动设备访问跳转到指定目录
  10. python人脸识别方法_python实现人脸识别代码
  11. JAVA JSP网上订餐系统JSP餐厅点餐系统源码JSP点餐系统JSP网上订餐系统JSP在线订餐
  12. AJAX技术和AXIO
  13. java exe 程序
  14. poj 1755 Triathlon (半平面交解一元二次不等式)(切割求半平面交)
  15. 6.2 不一致数据的转换
  16. 心得|Python新手如何渡过小白期,不再当菜鸟程序员?
  17. 输入两个正整数num1、num2,计算并输出它们的和、差、积、整数商和余数
  18. Mac设置chrome浏览器跨域
  19. 毕设论文数据分析记录-part2:相关性分析
  20. 平常心态过快乐的生活

热门文章

  1. 服务器u单核性能排行,CPU单核性能天梯图2021 2021年最新CPU单核性能排行天梯图...
  2. 有道云笔记 迁移 语雀过程记录
  3. [人工智能-综述-10]:模型评估 - 常见的模型评估指标与方法大全、汇总
  4. HTML中字体相关单位
  5. Win10 触摸屏 快捷键操作
  6. 达梦数据库基础知识(七)如何管理表
  7. Amazon 的IoT之路
  8. git 终端配置mac(udacity)
  9. 【C语言笔记】【宏定义系列】 判断是否2的n次幂对齐
  10. 美丽汤的请求 - 小甜饼豆瓣爬虫