python采集IP代理数据,防止数据采集IP被封情况

news2025/4/3 14:12:13

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学Python时刻~

为什么要IP代理:

当采集数据, 批量采集数据, 请求速度过快, 网站可能会把你IP封掉 <你的网络进不去这个网站>

IP代理换一个IP, 再去采集请求数据

一. 抓包分析数据来源

1. 明确需求:

确定采集网站以及采集数据是什么

获取IP代理, 检测IP代理是否可用

dit = {
‘http’: ‘http://’ + IP:端口
}

2. 分析IP和端口号 这两个数据, 请求那个网站可以得到?

F12 或者 右键点击检查选择network 刷新网页

分析数据在哪里 --> 通过关键字<我们想要数据>搜索数据来源

请求 https://www.*****.com/free/ 获取 response 就可以得到我们想要IP和端口的数据

二. 代码实现步骤过程

  1. 发送请求, 模拟浏览器对于url地址发送请求

  2. 解析数据, 提取我们想要数据内容

  3. 保存数据, 把可用IP代理保存本地,IP代理检测

  4. 检测可用之后, 保存IP代理

代码展示

( 完整源码点击此处跳转跳转文末名片加入君羊,找管理员小姐姐领取呀~ )

发送请求

请求链接

url = f'https://www.******.com/free/inha/1/'

模拟伪装 --> headers 请求头 字典数据类型

headers = {
    # User-Agent 用户代理 表示浏览器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
response = requests.get(url=url, headers=headers)

解析数据

三种解析方法

re:直接对于字符串数据提取

re.findall(‘匹配什么数据’, ‘什么地方匹配’) 找到我们想要数据内容

从什么地方去匹配什么数据

response.text 里面去匹配 (.?) 其中 (.?) 这段内容就是我们要的数据

() 表示你要的数据, .*? 匹配规则 可以匹配任意字符(除了换行符\n)

IP_list = re.findall('<td data-title="IP">(.*?)</td>', response.text)
PORT_list = re.findall('<td data-title="PORT">(.*?)</td>', response.text)

css:根据标签属性提取数据

list tbody tr td:nth-child(1) 定位标签元素

td:nth-child(1) 表示第一个td标签

td:nth-child(1)::text 表示提取第一个td标签里面文本数据

getall() 表示获取所有

IP_list = selector.css('#list tbody tr td:nth-child(1)::text').getall()
PORT_list = selector.css('#list tbody tr td:nth-child(2)::text').getall()

xpath:根据标签节点提取数据

IP_list = selector.xpath('//*[@id="list"]//tbody/tr/td[1]/text()').getall()
PORT_list = selector.xpath('//*[@id="list"]//tbody/tr/td[2]/text()').getall()

for循环遍历提取数据 把列表里面元素 一个一个提取出来

for IP, PORT in zip(IP_list, PORT_list):
    dit = {
        'http': 'http://' + IP + ':' + PORT,
        'https': 'https://' + IP + ':' + PORT,
    }

print(dit)

检测IP代理是否可用, 请求一个网站携带上IP代理

try:
    # 携带IP代理发送请求
    response_1 = requests.get(url='https://www.*****.com/', headers=headers, proxies=dit, timeout=1)
    # response_1.status_code 获取状态码
    if response_1.status_code == 200:
        print(dit, '这个代理真润')
        use_list.append(dit)
except:
    print(dit, 'He tui~ 用不了')

保存

with open('代理https.txt', mode='w', encoding='utf-8') as f:
    f.write('\n'.join([str(i) for i in use_list]))

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Runtime、ProcessBuilder的区别(Java中,两种方法来启动其他程序)

目录 ■Runtime、ProcessBuilder 区别&#xff1a; ■Java中提供了两种方法来启动其他程序 ■代码 ・Runtime ・ProcessBuilder ■类的方法 ・Process.waitFor()方法 ・Process.getErrorStream()方法 ・Process.redirectErrorStream(true)方法: ■可运行代码 ・java…

解读YOLOv8的改进模块

回顾一下YOLOv5 Backbone&#xff1a;CSPDarkNet结构&#xff0c;主要结构思想的体现在C3模块&#xff0c;这里也是梯度分流的主要思想所在的地方&#xff1b;PAN-FPN&#xff1a;双流的FPN&#xff0c;必须香&#xff0c;也必须快&#xff0c;但是量化还是有些需要图优化才可以…

“数据二十条”发布背后:国企下场探路,技术路径日渐清晰

科技云报道原创。 近日&#xff0c;中共中央、国务院对外发布了《关于构建数据基础制度更好发挥数据要素作用的意见》&#xff08;又称“数据二十条”&#xff09;&#xff0c;为数据要素的流通和使用起到了举旗定向的作用&#xff0c;让从业者都感到振奋。 必须承认的是&…

通信原理与MATLAB(十二):MSK的调制解调

目录1.MSK的调制原理2.MSK的解调原理3.MSK代码4.结果图5.特点1.MSK的调制原理 MSK调制原理如下图所示&#xff0c;基带码元先差分编码&#xff0c;然后经过串并转换分成I、Q两路&#xff0c;再与对应的载波相乘&#xff0c;然后再相加完成QAM的调制。 其中注意:I、Q两路码元分…

【深度学习】LSTM预测股票价格

入行深度学习1年多了&#xff0c;该还的还得还&#xff0c;没接触过LSTM的预测项目&#xff0c;这就来活了。 文章目录前言1. 开工1.1 引入必须的库1.2 数据初探1.3 划分数据集1.4 数据归一化1.5 数据分组1.6 搭建模型1.7 训练1.8 测试集总结前言 LSTM是一个处理时序关联的数据…

数据结构-第七期——并查集的应用(Python)

在学习并查集的应用之前&#xff0c;请大家先学习第六期-并查集的入门 ,这样会比较好理解 真题训练1 合根植物2017年第八届决赛&#xff0c;lanqiao0J题号110 【题目描述】 w 星球的一个种植园&#xff0c;被分成 mn 个小格子&#xff08;东西方向 m 行&#xff0c;南北方向…

dubbo-admin安装

一、dubbo-admin安装 1、环境准备 dubbo-admin 是一个前后端分离的项目。前端使用vue&#xff0c;后端使用springboot&#xff0c;安装 dubbo-admin 其实就是部署该项目。我们将dubbo-admin安装到开发环境上。要保证开发环境有jdk&#xff0c;maven&#xff0c;nodejs 安装n…

基于Python的geopandas库处理矢量几何的教程

前言在许多工作中中&#xff0c;我使用 ArcGIS 平台从事过许多与地理空间相关的项目&#xff0c;我非常喜欢这个平台。 这意味着我可以在具有尖端地理空间技术的项目中进行咨询&#xff0c;例如多维栅格、深度学习和空间物联网自动化。 考虑到这一点&#xff0c;我总是试图跟踪…

openstack增加一个计算节点

1.前言 由于资源有限&#xff0c;所以直接在存储节点&#xff08;block&#xff09;部署 由于存储节点最初只设计了一块网卡&#xff0c;所以需要增加一块网卡&#xff0c;名称为eth1&#xff0c;IP&#xff1a;192.168.200.30编辑ifcfg-eth1&#xff0c;然后重启网络systemct…

【优化】windows双网叠加 多网叠加 网速叠加 教程

【优化】windows双网叠加 多网叠加 网速叠加 教程 1 连接两个以上的网络, 网络不能是同一个 例如 网线-A wifi-B 2 控制面板\所有控制面板项\网络连接 最后 确定保存 同理 修改wifi-B的接口活跃点数为 25 并保存 如果没有生效 可以将两个网络连接禁用 再启用 通过命…

4656. 技能升级

4656. 技能升级 https://www.acwing.com/problem/content/4659/ 第十三届蓝桥杯省赛CC组 算法标签&#xff1a;贪心&#xff1b;多路归并&#xff1b;二分 思路 如果暴力来做的话&#xff0c;会将所有数放到一个集合里面排序&#xff0c;取前 mmm 项之和即可&#xff0c;但时…

Vue3——第六章(侦听器:watch、watchEffect)

一、watch 基本使用 在组合式 API 中&#xff0c;我们可以使用 watch 函数在每次响应式状态发生变化时触发回调函数&#xff1a; 二、侦听数据源类型 watch 的第一个参数可以是不同形式的“数据源”&#xff1a;它可以是一个 ref (包括计算属性)、一个响应式对象、一个 get…

5.2、运输层端口号、复用与分用的概念

1、端口号 运行在计算机上的进程使用进程标识符PID\color{red}进程标识符 PID进程标识符PID来标志。 因特网上的计算机并不是使用统一的操作系统 不同的操作系统(windows&#xff0c;Linux&#xff0c;Mac OS)又使用不同格式的进程标识符\color{red}不同格式的进程标识符不同…

ThreadLocal 实战应用

1 什么是 ThreadLocal&#xff1f;ThreadLocal 是一个关于创建线程局部变量的类。通常情况下&#xff0c;我们创建的变量是可以被任何一个线程访问并修改的。而使用 ThreadLocal 创建的变量只能被当前线程访问&#xff0c;其他线程则无法访问和修改。ThreadLocal 在设计之初就是…

CDN简单介绍

CDN 介绍 CDN (全称 Content Delivery Network)&#xff0c;即内容分发网络&#xff0c;服务器的静态资源存在CDN服务器上&#xff0c;用户在最近的CDN服务器上获取资源。 从功能上看&#xff0c;典型的 CDN 系统由分发服务系统、负载均衡系统和运营管理系统组成。分发服务系…

我利用 ChatGPT 提高工作效率的 5 种方式

技术应该是我们的朋友&#xff0c;而不是我们的敌人ChatGPT 在 11 月的发布改变了世界。学校阻止该计划&#xff0c;程序员对他们工作中新发现的效率赞不绝口&#xff0c;而创意人员则怀疑他们的工作是否受到威胁。每个人都在想同一个问题&#xff1a;ChatGPT 的未来会是什么样…

IPS+ESPC联动实现安全中心接管

目录 一、IPS介绍 原理 功能 缺陷 二、ESPC介绍 原理 功能 三、NIPSESPC联动 实验目的 实验过程 一、IPS介绍 原理 如今内部威胁增多&#xff0c;外部攻击剧增&#xff0c;防火墙存在着一定的局限性&#xff0c;如&#xff1a;部署在边界处&#xff0c;更多的是对一些…

环境搭建(python+pycharm(anconda可选)

python下载 python下载&#xff0c;由于网站服务器在国外&#xff0c;所以打开可能有点慢&#xff0c;也可以使用国内的镜像网站&#xff08;因为我没有试过&#xff0c;有兴趣的可以去尝试下&#xff0c;此文章的后面部分会有临时换源的操作&#xff09; 电脑位数的查看 …

1277:【例9.21】方格取数——数字三角形模型

【题目描述】 设有NN的方格图&#xff0c;我们在其中的某些方格中填入正整数&#xff0c;而其它的方格中则放入数字0。如下图所示&#xff1a; 某人从图中的左上角A出发&#xff0c;可以向下行走&#xff0c;也可以向右行走&#xff0c;直到到达右下角的B点。在走过的路上&…

如何实现同一IP的不同端口访问不同的网站

一&#xff0c;要求 1&#xff0c; 基于同一IP的不同端口访问不同的网站(可以通过域名去访问) ipport1 -> 对应一个域名 ipport2 -> 对应一个域名 使用域名1我应该访问到 ipport1对应的内容 使用域名2我应该访问到 ipport2对应的内容 2. …