【python案例】获取IP代理数据,筛选出符合需求的IP

news2024/11/17 15:46:01

前言

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

我们为什么要IP代理呢?

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

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

开发环境:

  • 解释器版本: python 3.8

  • 代码编辑器: pycharm 2021.2

第三方模块使用:

  • import requests —> 数据请求模块<工具>

  • import parsel —> 解析数据模块

第三方模块安装:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

可能安装失败原因:出现大量报红 (read time out)

解决方法: 因为是网络链接超时, 需要切换镜像源

可使用镜像源例举:

  1. 清华:https://pypi.tuna.tsinghua.edu.cn/simple

  2. 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

  3. 华中理工大学:https://pypi.hustunique.com/

  4. 山东理工大学:https://pypi.sdutlinux.org/

例如:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ 模块名


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


思路分析

一. 抓包分析数据来源

  1. 明确需求:

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

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

       dit = {
           'http': 'http://' + IP:端口
       }
      
  2. 分析IP和端口号 这两个数据, 请求那个网站可以得到?

    抓包分析数据所在url地址 --> 开发者工具进行抓包分析

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

      为了让网页数据内容重新加载一遍

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

二. 代码实现步骤过程

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

  2. 获取数据, 获取服务器返回响应数据

    开发者工具 --> response

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

    IP 端口

  4. 保存数据, 把可用IP代理保存本地

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

代码展示

import requests
# 导入re正则 内置模块 不需要安装
import re
import parsel

use_list = []
all_list = []
for page in range(1, 11):
    # 请求链接
    url = f'https://****/free/inha/{page}/'
    # 模拟伪装 --> headers 请求头  字典数据类型
    headers = {
        '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正则提取数据
    IP_list = re.findall('<td data-title="IP">(.*?)</td>', response.text)
    PORT_list = re.findall('<td data-title="PORT">(.*?)</td>', response.text)
    for IP, PORT in zip(IP_list, PORT_list):
        dit = {
            'http': 'http://' + IP + ':' + PORT,
            'https': 'https://' + IP + ':' + PORT,
        }
        all_list.append(dit)
        try:
            response_1 = requests.get(url='https://www.baidu.com/', headers=headers, proxies=dit, timeout=1)
            if response_1.status_code == 200:
                print(dit, '这个代理真润')
                use_list.append(dit)
        except:
            print(dit, 'He tui~ 用不了')


print('==========' * 50)
print(f'一共采集到{len(all_list)}个IP代理')
print(all_list)
print(f'可以使用的IP代理有{len(use_list)}个')
print(use_list)
with open('代理https.txt', mode='w', encoding='utf-8') as f:
    f.write('\n'.join([str(i) for i in use_list]))

括展小知识

解析方法:

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

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

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

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

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

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

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

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

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

  • getall() 表示获取所有

css提取数据

    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()
    print('===' * 50)
    print(IP_list)
    print(PORT_list)

css / xpath 转换数据类型

    selector = parsel.Selector(response.text)

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

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()
    print('===' * 50)
    print(IP_list)
    print(PORT_list)

尾语

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

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

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

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

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

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

相关文章

Vicuna:斯坦福开源一个性能相当于90%ChatGPT的聊天机器人

自从Meta公司发布LLaMA以来&#xff0c;围绕它微调和开发的模型越来越多&#xff0c;这得益于它的性能和效果&#xff0c;2023年3月份发布的草泥马&#xff08;Alpaca&#xff09;是由Meta的LLaMA 7B微调而来的全新模型&#xff0c;仅用了52k数据&#xff0c;性能约等于GPT-3.5…

欧奈尔杯柄形态选股公式,突破杯柄高点发出信号

杯柄形态是由美国著名的成长股投资大师威廉欧奈尔提出的&#xff0c;在其经典著作《笑傲股市》中有详细介绍。 根据欧奈尔在书中的描述&#xff1a; 从侧面观察其轮廓时&#xff0c;最重要的价格形态之一看起来就像是一个带柄的茶杯。杯状形态可以持续7~56周不等&#xff0c;但…

数据结构选择题(难题题解) 第五章 树

5.2 14. 法1&#xff1a;少一个叶子再多一个叶子&#xff0c;欠考虑了 选B 法2&#xff1a; 法三&#xff1a; 5.3 23.选D A. 如果是根 直接找孩子就能找到后继&#xff1b;如果是左孩子&#xff0c;有孩子就找孩子&#xff0c;无孩子&#xff0c;指针是空&#xff0c…

ROS2 msg和srv CMake编写注意事项

ROS2使用msg和srv可以参考官网&#xff1a; 工程文件cpp所包含的头文件&#xff0c;其中 cpp_pubsub_self/msg/test.hpp 为msg消息消息生成的头文件&#xff0c;具体的可以参考官网 注意事项&#xff1a; 在 ROS2 当中&#xff0c;使用 msg 和 srv 消息文件格式的时候&#…

单点登录三:添加RBAC权限校验模型功能理解及实现demo

1、RBAC权限模型 RBAC&#xff08;Role-Based Access Control&#xff09;是一种基于角色的访问控制模型&#xff0c;用于管理系统中用户的权限和访问控制。它将用户、角色和权限之间的关系进行了明确的定义&#xff0c;以实现灵活的权限管理和控制。 1.1、RBAC模型主要包括以…

这才是CSDN最系统的网络安全学习路线(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

异步复位同步释放

(1条消息) 芯片设计全流程知识点总结_GGbao_的博客-CSDN博客 异步复位同步释放在always语句块里为&#xff1a; 当异步复位信号到来时&#xff0c;寄存器 reg_1 会被直接拉低&#xff0c;这是不会产生问题的&#xff0c;当rstn下降沿和clk上升沿同时到来时&#xff0c;如果rstn…

EduSoho 网校系统部署

目录 一、初始化环境二、安装 Nginx三、安装 MySQL四、安装 PHP五、上线 EduSoho六、验证FAQ 一、初始化环境 1、安装wget 如果系统已安装wget,请跳过此步骤 yum install wget2、关闭防火墙/Selinux systemctl stop firewalld.service systemctl disable firewalld.service…

Win32通用控件,加载进程(PE查看器)项目初步

在本专栏上一篇文章中带领大家学习了对话框的创建&#xff0c;并且在项目中创建出了对话框。在这一篇文章中&#xff0c;我将带领大家学习Win32通用控件&#xff0c;了解_WM_NOTIFY消息&#xff0c;并且带领大家初步写出课程中加载Windows所有进程的应用程序的雏形&#xff0c;…

因为懒,我用了“低代码”打下手

目录 一、前言 二、工具介绍 三、平台特点 四、如何使用JNPF&#xff1f; 五、低代码平台的选择参考 六、总结 一、前言 「一个优秀的开发者&#xff0c;一定是会利用各种工具来提升自己的开发效率。」 前段时间&#xff0c;体验了很多国内前沿的低代码平台&#xff0c;在…

Fiddler抓包工具之Fiddler界面主菜单功能介绍

Fiddler界面主菜单功能介绍 File菜单 File菜单中的命令主要支持完成通过Fiddler来启动和停止web流量的捕获&#xff08;capture&#xff09;,也可以加载或存储捕获的流量 &#xff08;1&#xff09;Capture Traffic&#xff1a;默认勾选&#xff0c;勾选此项才可抓包&#xff…

Linux ALSA音频工具

参考&#xff1a; ALSA 音频工具 amixer、aplay、arecord Linux Alsa ALSA的配置文件 音频录制——arecord 音频播放——aplay 音频配置——amixer alsamixer与amixer的区别 alsamixer是Linux音频框架ALSA工具之一&#xff0c;用于配置音频各个参数; alsamixer是基于文本图形…

APP中有html5页面的时候,怎么进行元素定位

测试app的时候&#xff0c;我们知道可以通过UI Automator Viewer进行元素定位 但是很多app中都会内嵌h5页面&#xff0c;这个时候定位就会变成下图这样&#xff1a; 第一步&#xff1a; 在手机中打开当前app的h5界面&#xff0c;使用usb连接电脑后&#xff0c; 第二步&#x…

聚焦金融行业网络安全|安全狗亮相知虎科技生态大会

5月18日&#xff0c;知虎科技生态大会在上海顺利举办。作为国内云原生安全领导厂商&#xff0c;安全狗也受邀出席此次活动。 据悉&#xff0c;此次大会邀请了来自国内顶级安全厂商的安全专家介绍从网络安全、应用安全、业务安全、数据安全、资金安全、通信安全等六个方面全方位…

抖音账号矩阵系统源码/技术开发搭建私有化部署开源

抖音SEO矩阵系统是基于抖音平台的搜索引擎优化技术的一种系统&#xff0c;其主要作用是通过一系列的技术手段&#xff0c;提高抖音视频的曝光和排名&#xff0c;使其获得更多的流量和粉丝。在本文中&#xff0c;我们将介绍抖音SEO矩阵系统的开发技术&#xff0c;包括系统设计、…

ElasticSearch集成SpringBoot实践及数据同步

一 前言 ES 全称 Elasticsearch 是一款分布式的全文搜索引擎&#xff0c;在互联网公司中&#xff0c;这款搜索引擎一直被程序员们所推崇。常见的使用场景如ELK日志分析&#xff0c;电商APP的商品推荐&#xff0c;社交APP的同城用户推荐等等。今天结合自己平时的一些学习对它与…

分布式事务解决方案Seata-1.6.0版本Docker安装

1. 简介 为什么要安装1.6.0 版本&#xff1f; 因为低版本Seata只支持单表的DDL语句&#xff0c;只有在在1.6.0版本及以上才支持 UPDATE JOIN。 注&#xff1a;1.6.0版本与 低版本的主要区别在于配置文件格式的修改&#xff0c;一站式解决方案&#xff1a;分布式事务解决方案Sea…

有哪些好用的App云测试平台?

一、国内外6种好用app云测平台推荐&#xff08;章节末附pk图&#xff09; 1、国内云测平台 1&#xff09;Testin云测 网址&#xff1a;https://www.testin.cn/ Testin云测平台是一款基于云端的移动应用测试平台&#xff0c;为移动应用开发者和测试人员提供一站式的移动应用质…

DNS风险分析及安全防护研究(一):DNS自身风险分析(中科三方)

作为互联网上的一项基础服务&#xff0c;DNS在网站运行中起到了至关重要的作用&#xff0c;然而其安全性在很长一段时间内都没有得到足够的重视。DNS采用不可靠的UDP协议&#xff0c;安全性具有较大的漏洞&#xff0c;攻击者很容易利用这些漏洞发动攻击&#xff0c;从而引起一些…

第三章 向量与线性方程组

引言 题型总结中推荐例题有蓝皮书的题型较为重要&#xff0c;只有吉米多维奇的题型次之。码字不易&#xff0c;如果这篇文章对您有帮助的话&#xff0c;希望您能点赞、评论、收藏&#xff0c;投币、转发、关注。您的鼓励就是我前进的动力&#xff01; 知识点思维导图 补充&…