利用爬虫获取免费IP代理

2023-05-16

项目目标

通过爬虫获取“西拉代理”(http://www.xiladaili.com)上的高匿代理,并储存至一个列表。

项目分析

首先对网页进行观察,主体内容如下图所示。
网页主体内容
不但指明了代理IP、协议类型,还有存活时间、打分这些数据。有需要的朋友,可以根据存活时间、打分来有选择性地挑选一些代理,这样获得的代理更加稳定。我仅展示最朴素的方法,即爬取网页上的所有代理。

网页下方有翻页按钮,点击不同页码,可以看到网页url也是非常有规律地在变动。
第四页网址最后就是数字4
一看到这么规整的数据展示,就想到了表格。我们打开浏览器的开发者模式,定位到这一片数据的源代码。可以看到的所有的数据都藏在名为tbody节点中。
在这里插入图片描述
整个项目的思路大致有了,大体有以下三个步骤:
①访问相关页面,读取网页源代码;
②在网页源代码中定位到tbody,从中提取每一行的IP等数据;
③保存至列表中。

在代码实现阶段,我们用selenium模拟浏览器的访问,用BeautifulSoup来解析网页源代码。

    from selenium import webdriver
    import numpy as np
    from bs4 import BeautifulSoup
    
    def getFreeProxy(url):
        # %%打开Chrome浏览器,模拟访问网站
        browser = webdriver.Chrome(executable_path="chromedriver.exe")
        pageNumber = np.random.choice(300) + 1 # 改成自己要爬的页面号,我这里就随机挑选一个页面
        browser.get(url + str(pageNumber))  # 步骤一代码
        # %% 解析代理数据
        soup = BeautifulSoup(browser.page_source, "html.parser")  # 步骤二代码
        proxies = [(r.text.strip().split()[0], r.text.strip().split()[1]) for r in soup.find("tbody").find_all("tr")]  # 步骤三代码
        
        return proxies
	
	if __name__=="__main__":
		url = "http://www.xiladaili.com/gaoni/"
		getFreeProxy(url)

(步骤三代码这么写,是观察到每一行的数据都保存在tbody节点的一个子节点tr中,本项目中我只关心代理IP地址和代理协议类型,只取了前两列的数据)

至此已经完成了我们的基本功能。

改进一:获取的很多代理实际上是不可用的,能不能筛选一下,只保留能用的代理呢?
见https://www.cnblogs.com/nenc/p/4800248.html

改进二:虽然在改进一中,我们显示地指定了浏览器通过代理IP访问网页,我能不能确认一下,实际访问网页的IP就是代理IP而不是本机IP呢?

改进三:当我跑这段代码频繁访问西拉代理的时候,有时候好几秒网页都加载不出来,这是怎么回事?

项目收获

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用爬虫获取免费IP代理 的相关文章

  • 阿里云服务器 配置frp实现Ubuntu台式机电脑内网穿透

    起因 实验室一台Ubuntu20 04的台式机电脑 xff0c 我想用我的Win10笔记本远程连接它 xff0c 用它的高性能 xff0c 在Ubuntu的环境下来跑代码 xff0c 这样比较方便 编程环境即可具有便携 性能 两者兼得 xf
  • 【论文阅读笔记】GAN Memory with No Forgetting

    Hello大家好 xff0c 今天带大家来看Nips2020的最新文章 GAN Memory with No Forgetting 关于Nips2020所有关于终生学习的文章可见传送门 总览 本文是杜克大学 xff08 Duke Unive
  • 【论文阅读笔记】NeurIPS2020文章列表Part2

    Online Multitask Learning with Long Term MemoryFewer is More A Deep Graph Metric Learning Perspective Using Fewer Proxie
  • Macbook用Terminal启动Matlab

    最近更新到了Mac OS Big Sur xff0c 发现Matlab开启后直接无响应 xff0c 因此只能通过Terminal打开 xff0c 打开方式是在Terminal中输入如下代码直接敲回车就行啦 xff08 其中Matlab版本要
  • 对比学习学习笔记

    对比学习学习笔记 A Simple Framework for Contrastive Learning of Visual Representations Ting Chen Simon Kornblith Mohammad Norouz
  • Ubuntu18版本安装ROS

    最近不小心把虚拟机里的ROS弄坏了 xff0c 导致Linux都无法使用 也忘了快照导致所以软件重新安装 xff0c 在这里给大家分享一下ubuntu18版本如何安装ros以及我安装中出现的问题如何进行解决 注 xff1a 不同的ubunt
  • ER图

    1 某商业集团的销售管理系统 数据库中有三个实体集 xff0c 一是 商店 实体集 xff0c 属性有商店编号 商店名 地址等 xff1b 二是 商品 实体集 xff0c 属性有商品号 商品名 规格 单价等 xff1b 三是 职工 实体集
  • Tensorflow:EEG上CNN的一次实验

    一次失败的CNN实现 前言简介数据CNN网络 模型调整减少过拟合的尝试与全连接网络比较与SVM网络比较模型运用到其他分类标准结果分析代码CNN网络代码交叉验证代码FC网络代码SVM网络代码 前言 这是一次较为 失败 的分类器尝试 xff0c
  • MySql Error Code: 1046. No database selected Select

    初学者在建立表时容易遇到这样的报错 xff1a Error Code 1046 No database selected Select the default DB to be used by double clicking its nam
  • R语言自用笔记:复数

    复数在R语言中标示为z 61 x 43 iy 在R中虚数单位为i xff0c 如果是定值可以直接赋值 z1 61 1i print z1 1 0 43 1i z2 61 2 5i print z2 1 0 43 2 5i z3 61 1 4
  • [飞控]如何学习无人机-入门篇

    学什么 我把无人机分成3个大模块 操作 目的 xff1a 组装无人机 xff0c 享受驾驶无人机的乐趣 抱歉我给不了太多建议 xff0c 因为我从没有以此为目进行过学习 xff0c 但是我知道这一部分的知识关键词是 航模 xff0c 有非常
  • 说透互补滤波(1) - 线性互补滤波器从原理到实现

    为什么开源代码看不懂 xff1f 说起互补滤波 xff0c 之前非常的流行 xff0c 在那个算力不够的年代 xff0c 这种短小精干的融合算法 xff0c 风靡一时 原理也非常简单 xff1a 我有两路信号 xff0c 一个带有高频噪声
  • 飞控中的IIR二阶滤波器

    之前我们讲过一阶滤波器 xff0c 思路就是把一个连续的滤波器形式 xff0c 通过离散化的方式 xff0c 转换成差分方程 同事拿着我的文章 xff0c 对照着代码里的二阶滤波 xff0c 表示完全看不懂 xff0c 我说不可能 xff0
  • [源码解读]position_estimator_inav_main解读(如何启动光流)

    阅读工具 xff1a source insight 技术交流 xff1a zinghd 64 163 com xff0c 757012902 64 qq com 源码版本 xff1a Firmware xff08 原生固件 xff09 如有
  • [算法]px4位置估计-inav (2017/10/26更新)

    技术交流 xff1a zinghd 64 163 com 757012902 64 qq com 转载标明出处 xff0c 欢迎转载 xff0c 因为都是自己的想法 xff0c 不一定都是对的 xff0c 欢迎讨论 xff0c 哪有问题欢迎
  • [资料]Adams-matlab联合仿真

    刚才老师让把研一上学期做的四轴仿真图加几个图 xff0c 我发现突然忘了整么弄 xff0c 折腾了半个小时 xff0c 赶紧记下来 仿真的思路是 1 solidworks把飞机的硬件做出来 2 模型导入Adams中 xff0c 生成matl
  • [折腾日记]PX4编译环境各种解决方案(ubuntu)

    这篇博客可以解决 PX4编译环境的安装 强烈建议使用Ubuntu16 04的64位版本 xff01 方法1 xff1a 官方脚本 如果你是新装的Ubuntu还没有装软件 那么用官方脚本可以直接安装 官方提供了4个脚本 The scripts
  • ubuntu 12.04英文版设置成中文版

    适用于ubuntu 12 04英文版的系统 xff0c 其它版本的设置应该是大同小异的 进入ubuntu系统 xff0c 在顶部齿状标志找到system 2 在personal找到Language Support 3 进入Language
  • [资料]无人机资料大满足

    资料大汇总 xff0c 论文 xff0c 电子书 xff0c 博客 xff0c 网站看这一篇就够了 精选论文下载 Cubli 方盒机器人为何具有超级平衡能力 xff0c 技术难点是什么 xff1f 苏黎世联邦理工学院 xff08 ETH Z
  • [资料]《现代操作系统》《操作系统概念(操作系统恐龙书)》官方英文电子档

    准备学习一下操作系统 查了很多资料 xff0c 发现大神们统一推荐的两本好书 现代操作系统 Modern Operating Systems Global Edition 4th Edition xff0c 这本书是教材 xff0c Tan

随机推荐

  • [飞控][算法]APM姿态控制—加速度转倾斜角函数和四元数转轴角函数解析(修正)

    https zinghd gitee io blog accel to lean angles to axis angle
  • [飞控]从零开始建模(三)-控制分配浅析

    根据之前的文章 xff0c 我们的模型其实已经完成了 xff0c 模型的输入是四个电机的转速 xff0c 输出是我们需要的状态 位置 xff0c 速度 xff0c 加速度 xff0c 角加速度 xff0c 角速度 xff0c 角度 xff0
  • [飞控]姿态误差(三)-四元数和轴角求误差

    https zinghd gitee io Att err3
  • Matlab中的Smith 预估器

    Smith Predictor是针对时滞系统的 原理 xff1a 看Matlab help中的 34 Control of Processes with Long Dead Time The Smith Predictor 34 足矣 xf
  • meson和pkg-config

    最近再看simple cam xff0c 它是用meson构建的 有这样一句 xff1a deps 61 dependency 39 libevent pthreads 39 执行编译时报错 xff1a meson build 16 0 E
  • ubuntu 22.04右上角找不到wifi图标,有线网络也失效

    起因是我将显示驱动由默认的nouveau换成了nvidia xff0c 然后重启后在右上角就看不到wifi图标了 执行 96 sudo lshw c network 96 显示 xff1a network UNCLAIMED 执行sudo
  • PIE

    1 以2812为例 xff08 28335也是 xff09 xff0c PIE Vector在Memory Map的位置是0x0D00 0x0E00 这个是在cmd文件中的MEMORY部分指定的 xff1a PIE VECT origin
  • VS2013取消预编译头

    创建C 43 43 Win32控制台时忘了取消预编译头 xff0c 怎么取消 xff1f 右键项目 gt 属性 gt 配置属性 gt C C 43 43 gt 预编译头 gt 不使用预编译头 改天再写预编译头是干嘛的
  • Xmanager 6 图形化界面连接Centos7 配置步骤

    1 前提 Centos 7已经安装就绪 2 安装Xmanager 6 本博客以Xmanager6 0 0108为例 a 首先双击可执行文件 出现如下安装界面 点击 下一步 nbsp nbsp nbsp nbsp nbsp nbsp nbsp
  • VS中VC++目录中的$是什么意思

    VC ExecutablePath x64 项目是x64平台 WindowsSDK ExecutablePath VS ExecutablePath MSBuild ExecutablePath VC IncludePath VCInsta
  • 关于单应性矩阵的理解:Homography matrix for dummies

    尽量写的通俗一点 xff0c 因为从某种程度上讲 xff0c 本人也是dummy 1 先说homogeneous coordinate xff0c 齐次坐标 一幅2D图像上的非齐次坐标为 x y xff0c 而齐次坐标为 x y 1 xff
  • 关于RANSAC的理解

    先说最小二乘 ok xff0c 你手头有一堆数据 xff0c 比如这些蓝点 xff1a 那么我们假设它符合一个直线模型 xff1a y 61 ax 43 b xff0c 用最小二乘就可以很容易求解出未知参数a和b 最小二乘大法确实好哇 xf
  • Visual Studio中监视数组

    比如有一个double h 9 xff0c 如果选择监视 xff0c 那么就只会监视h 0 xff0c 如果想监视其他元素 xff0c 难道只能h 1 h 2 一个个的添加吗 xff1f 当然不需要 xff0c 在监视中输入h 9就可以了
  • 在编译PX4之前,你需要知道的几件事

    1 在git上clone代码 xff0c 必须是clone xff0c 因为编译时需要有 git文件夹 如果你看Makefile就会发现有这么一行 xff1a Enforce the presence of the GIT reposito
  • 马氏距离与卡方分布

    最近在看 Fundamentals of object tracking xff0c 看到最近邻滤波时 xff0c 碰到了题中的两个概念 以下内容基本来自wiki xff0c 读者有不懂的地方看wiki更清晰明了 1 马氏距离 Mahala
  • PX4中的mavlink

    简介 px4与地面站的通信协议是mavlink xff0c 对于其消息格式的介绍看这里和这里 需要注意几点 xff1a 不光是px4与qgroundcontrol通信通过mavlink xff0c 有一些sensor也支持mavlink m
  • STM32F1Debug,定时器时基初始化参数

    STM32F1 xff0c 定时器时基初始化参数 错误代码 xff1a 在初始化时基时 xff0c 没有给TIM ClockDivision和TIM RepetitionCounter赋值 错误代码 xff1a span class tok
  • dockerfile详解

    前言 各位想必应该记得 xff0c 我们此前如果安装一个nginx的话 xff0c 安装完以后 xff0c 我们说过很多次了 xff0c 通常不会运行在默认配置下 xff0c 那因此 xff0c 我们通常需要去改一改它的配置文件或者定义模块
  • docker hub + github action x持续集成CI/CD

    docker 43 github 持续集成CI CD docker 持续集成 参考官网 xff1a https docs docker com ci cd best practices 的大部分内容 2020 Jetbrains devel
  • 利用爬虫获取免费IP代理

    项目目标 通过爬虫获取 西拉代理 xff08 http www xiladaili com xff09 上的高匿代理 xff0c 并储存至一个列表 项目分析 首先对网页进行观察 xff0c 主体内容如下图所示 不但指明了代理IP 协议类型