返回顶部
首页 > 资讯 > 后端开发 > Python >超简单的scrapy实现ip动态代理与更换ip的方法实现
  • 881
分享到

超简单的scrapy实现ip动态代理与更换ip的方法实现

2024-04-02 19:04:59 881人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

简单实现ip代理,为了不卖广告, 请自行准备一个ip代理的平台 例如我用的这个平台,每次提取10个ip 从上面可以看到数据格式是文本,换行是\r\n,访问链接之后大概就是长这样

简单实现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函数,因为每个请求发起前都会经过这个函数

首先是setting文件,其实就是加两句代码


count = {'count': 0}
ipPool = []

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

在这里插入图片描述

下载器中间件的process_request函数,进行ip代理和固定次数更还ip代理池


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

最后就是爬虫文件的start_requests函数,就是第一次发请求前要先填满ip池的ip


	# 记得导包
	from 你的项目.settings import ipPool
	import random
	import requests
	
  def 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的方法实现的文章就介绍到这了,更多相关scrapy ip动态代理与更换ip内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 超简单的scrapy实现ip动态代理与更换ip的方法实现

本文链接: https://lsjlt.com/news/122098.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 超简单的scrapy实现ip动态代理与更换ip的方法实现
    简单实现ip代理,为了不卖广告, 请自行准备一个ip代理的平台 例如我用的这个平台,每次提取10个ip 从上面可以看到数据格式是文本,换行是\r\n,访问链接之后大概就是长这样...
    99+
    2024-04-02
  • scrapy如何实现ip动态代理与更换ip
    这篇文章将为大家详细讲解有关scrapy如何实现ip动态代理与更换ip,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。请自行准备一个ip代理的平台例如我用的这个平台,每次提取10个ip从上面可以看到数据格式...
    99+
    2023-06-14
  • python实现自动更换ip的方法
    from: http://www.jb51.net/article/65513.htm ...
    99+
    2023-01-31
    方法 python ip
  • 怎么实现秒切动态http代理换ip
    这篇文章主要介绍“怎么实现秒切动态http代理换ip”,在日常操作中,相信很多人在怎么实现秒切动态http代理换ip问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么实现秒切动态http代理换ip”的疑惑有所...
    99+
    2023-06-20
  • Python获取linux主机ip的简单实现方法
    本文实例讲述了Python获取linux主机ip的简单实现方法。分享给大家供大家参考,具体如下: python有好几种方法可以获取主机的ip地址。我常用的一种是通过socket.socket().inet_...
    99+
    2022-06-04
    主机 简单 方法
  • java动态代理的实现方法
    这篇文章主要介绍“java动态代理的实现方法”,在日常操作中,相信很多人在java动态代理的实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java动态代理的实现方法”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-20
  • Python爬虫代理IP池实现方法
    在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速稳定的运行,当然在公司做的东西不能开源出来。不过...
    99+
    2022-06-04
    爬虫 方法 Python
  • Python搭建自己IP代理池的方法实现
    IP代理是什么: ip就是访问网页数据服务器位置信息,每一个主机或者网络都有一个自己IP信息 为什么要使用代理ip: 因为在向互联网发送请求中,网页端会识别客户端是真实用户还是爬虫程...
    99+
    2023-02-13
    Python搭建IP代理池 Python IP代理池
  • 利用java实现动态代理的方法
    这篇文章将为大家详细讲解有关利用java实现动态代理的方法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java 动态代理的方法总结AOP的拦截功能是由java中的动态代理来实现的。说白了,...
    99+
    2023-05-31
    java 动态代理 ava
  • Python 爬虫IP代理池的实现
    Python 爬虫IP代理池的实现 很多时候,如果要多线程的爬取网页,或者是单纯的反爬,我们需要通过代理 IP来进行访问。下面看看一个基本的实现方法。 代理 IP ...
    99+
    2024-04-02
  • Java实现动态代理的方法有哪些
    这篇文章将为大家详细讲解有关Java实现动态代理的方法有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。详解Java动态代理的实现及应用Java动态代理其实写日常业务代码是不常用的,但在框...
    99+
    2023-05-31
    java 动态代理 ava
  • Unity实现简单换装系统的方法
    小编给大家分享一下Unity实现简单换装系统的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:using UnityEngine;using...
    99+
    2023-06-14
  • 实现MySQL更新查询的简单方法
    下文主要给大家带来实现MySQL更新查询的简单方法,希望这些内容能够带给大家实际用处,这也是我编辑实现MySQL更新查询的简单方法这篇文章的主要目的。好了,废话不多说,大家直接看下文吧。  &nb...
    99+
    2024-04-02
  • python爬虫设置每个代理ip的简单方法
    python爬虫设置每个代理ip的方法: 1.添加一段代码,设置代理,每隔一段时间换一个代理。 urllib2 默认会使用环境变量 http_proxy 来设置 HTTP Proxy...
    99+
    2024-04-02
  • Java实现动态代理的实例代码
    目录前言静态代理 动态代理 CGLib实现动态代理 总结前言 动态代理在Java中有着广泛的应用,比如Spring AOP、Hibernate数据查询、测试框架的后端mock、RPC...
    99+
    2024-04-02
  • Android简单实现启动画面的方法
    本文实例讲述了Android简单实现启动画面的方法。分享给大家供大家参考,具体如下: 核心代码: package com.demo.app; import android.a...
    99+
    2022-06-06
    方法 启动 动画 Android
  • CSS3中@keyframes简单动画的实现方法
    这篇文章主要介绍了CSS3中@keyframes简单动画的实现方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。CSS3 @keyframes简单动画实现定义:通过 @key...
    99+
    2023-06-08
  • Android实现编程修改手机静态IP的方法
    本文实例讲述了Android实现编程修改手机静态IP的方法。分享给大家供大家参考。具体如下: 这里演示通过编程方式动态修改手机静态IP的方法,可以用于wifi接入点切换 pu...
    99+
    2022-06-06
    ip 方法 静态ip 手机 Android
  • JS实现简单可拖动的模态框
    本文实例为大家分享了JS实现简单可拖动的模态框的具体代码,供大家参考,具体内容如下 这篇博文有 简单实现 和 带样式且稍微复杂一点 的两个版本 简单版本 效果图: 实现思路: 给可...
    99+
    2024-04-02
  • Java 动态代理的多种实现方式
    目录一、动态代理简介二、动态代理的多种实现 1. 基于JDK的实现 2. 基于cglib的实现 三、为什么要有基于cglib的实现 四、两种方式的适用场景JDK动态代理 优点 缺点 ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作