爬虫福音:Github星标14K+,一个开源的IP代理池

给github设置代理 本文详细介绍了在 Linux 环境下配置和使用网络代理的步骤。包括使用环境变量设置代理的方法、在 Git 中配置代理的常用方法以及一些调试工具。 阅读详情

大家好,我是丁小杰!

时间过得真快,一眨眼就到了元宵节,大家记得吃元宵哦~

为什么要使用代理?

不知道大家在写爬虫时是否遇到过这样的情况,测试时爬虫可以正常工作,但运行一段时间,就会发现报错或是没有数据返回,网页可能会提示“IP访问频繁”。这就说明网站对IP方面是有反爬措施的(IP一定时间内的请求次数及速度)。如果超过了某个阈值,就会直接拒绝服务,也就是经常说的“封IP”。

这种情况下,就到了代理IP出场了。代理实际就是代理服务器,它的工作原理其实很简单,在我们正常请求一个网站时,是直接发送请求给Web服务器,Web服务器把响应数据传给我们。而用了代理IP,就像是在本机和Web服务器之间搭建了一个“桥”,此时本机会先向代理服务器发出请求,再由代理服务器发送给Web服务器。响应数据的返回也是同样的道理,都需要代理服务器来中转。这样Web服务器就不容易识别出本机IP了。

但代理IP也有优劣之分,以隐匿性来分有3种:高匿代理,普匿代理,透明代理。

接下来就看看 Github 热门的开源项目 ProxyPool ,如何使用吧!

ProxyPool简介

一个爬虫代理IP池,定时采集网上发布的免费代理并验证入库,定时检测代理的可用性,提供 API 和 CLI 两种使用方式。同时你也可以扩展代理源以增加代理池IP的质量和数量。

下载代码

通过 git clone 下载代码

git clone git@github.com:jhao104/proxy_pool.git

下载对应zip文件

安装依赖库
pip install -r requirements.txt
修改配置文件

打开代码文件中的 setting.py ,根据自己的需求修改项目配置。

# 配置API服务
HOST = "0.0.0.0"               # IP
PORT = 5000                    # 监听端口


# 配置数据库
DB_CONN = 'redis://:pwd@127.0.0.1:8888/0'
# 无密码
DB_CONN = 'redis://:@127.0.0.1:8888/0'

# proxy table name 表名(自己建的)
TABLE_NAME = 'use_proxy'

# 配置 ProxyFetcher
PROXY_FETCHER = [
    "freeProxy01",      # 这里是启用的代理抓取方法名,所有fetch方法位于fetcher/proxyFetcher.py
    "freeProxy02",
    # ....
]
运行项目

启动 redis 服务:redis-server.exe(可执行文件在 redis 安装路径下)。

1.启动调度程序

启动调度程序,在 Proxy_pool 项目路径下打开 cmd 输入:

python proxyPool.py schedule

读取数据库中的代理。

import redis

r = redis.StrictRedis(host="127.0.0.1", port=6379, db=0)
result = r.hgetall('use_proxy')
result.keys()


2.启动webApi服务

python proxyPool.py server

启动web服务后, 默认配置下会开启 http://127.0.0.1:5010 的api接口服务:

apimethodDescriptionparams
/GETapi介绍None
/getGET随机获取一个代理可选参数: ?type=https 过滤支持https的代理
/popGET获取并删除一个代理可选参数: ?type=https 过滤支持https的代理
/allGET获取所有代理可选参数: ?type=https 过滤支持https的代理
/countGET查看代理数量None
/deleteGET删除代理?proxy=host:ip

在爬虫中使用

import requests

def get_proxy():
    return requests.get("http://127.0.0.1:5010/get/").json()

def delete_proxy(proxy):
    requests.get("http://127.0.0.1:5010/delete/?proxy={}".format(proxy))

# your spider code

def getHtml():
    # ....
    retry_count = 5
    proxy = get_proxy().get("proxy")
    while retry_count > 0:
        try:
            html = requests.get('http://www.example.com', proxies={"http": "http://{}".format(proxy)})
            # 使用代理访问
            return html
        except Exception:
            retry_count -= 1
    # 删除代理池中代理
    delete_proxy(proxy)
    return None

代理池中的代理毕竟是爬取的免费代理,IP质量那真是一言难尽,但也足够日常开发使用。

对于使用还有不懂的话,可以看一下完整文档。
项目地址:

https://github.com/jhao104/proxy_pool

对于刚入门 Python 或是想要入门 Python 的朋友,可以通过关注公众号“Python新视野”,一起交流学习,都是从新手走过来的,有时候一个简单的问题卡很久,但可能别人的一点拨就会恍然大悟,由衷的希望大家能够共同进步。

👇🏻 关注公众号卡片,回复“交流群”,一起学习Python👇🏻
构建个人代理池:使用GitHub项目proxy_pool的搭建配置及代码接口详解 本博客将详细介绍如何使用GitHub上的开源项目proxy_pool构建个人代理池。我们将解释proxy_pool的原理和功能,并提供逐步指导,帮助您完成代理池的搭建和配置。您将学习如何安装和配置代理池的依赖项,启动代理池服务,管理代理IP资源,并使用代码接口进行代理IP的获取和使用。通过构建个人代理池,您将获得稳定可靠的代理IP资源,提升爬虫、数据采集或其他网络应用的效率和稳定性。 阅读详情

相关推荐

GitHub 国内加速完全指南(最新):镜像、代理与优化技巧

在国内使用 GitHub 时,经常遇到 clone 慢、打开仓库卡、GitHub Actions 不稳定 等问题。下面是整理好的 GitHub 国内镜像和加速方法大全,高效使用 GitHub。

moton2017的博客 1万+

解决github访问问题的一个有效方法

亲测有效的方案:先使用代理网站进入 github,然后再 github 上下载 dev-sidecar 即可。如果此方案不行,也可以试试另一解决方案

weixin_73162565的博客 6868

龙芯3A5000开发板PMON升级UEFI固件实战指南

固件是计算机硬件与操作系统之间的关键桥梁,负责初始化硬件并引导系统启动。其工作原理是在上电后执行自检、加载引导程序,最终将控制权移交操作系统。在国产化平台中,采用标准化的UEFI固件具有重要技术价值,它能提供图形化配置界面、统一硬件驱动模型,并支持安全启动等现代特性,从而显著提升硬件兼容性与系统管理效率。这一技术广泛应用于PC、服务器及嵌入式设备,尤其在需要运行银河麒麟等主流操作系统的龙芯开发板场景中,将传统PMON固件升级至UEFI,能实现更流畅的系统安装与更稳定的运行体验。本文基于固件升级与UEFI引导

weixin_42664597的博客 562

github国内镜像代理【持续更新】

整理github国内代理(镜像站) 会不定期持续更新。不过由于我都是优先从gitee上找资源,所以有时会更新的比较慢。 域名 更新时间 备注 https://kgithub.com 2023.03.14 已失效备注 以下是在搜索过程中发现其他人共享,但经试验已失效的。 按域名字母顺序排序 域名 更新时间 备注 ​https://api.git.sdut.me/​​ 2023.03.14 https://archive.fastgit.org​​ 2023.0

空空空的博客 1万+

RK3568 Android12预置APK的三种模式详解:不可卸载、可卸载与永久删除

本文深入解析RK3568 Android12系统中APK预置的三种模式:不可卸载、可卸载与永久删除,详细介绍了每种模式的技术实现、应用场景及实战案例。针对Rockchip平台特性,提供从目录创建到系统编译的完整指南,帮助开发者根据产品需求选择最佳预置方案,并解决常见问题。

k8s6orchestrator的博客 967

基于STM32的多普勒雷达测速

基于多普勒雷达传感器,以STM32单片机为主控芯片,根据不同模块检测距离的不同,使用不同多普勒雷达传感器实现对远近距离车辆行驶速度及方向的测量。 1、基础知识 无线电探测和测距,是用无线电(电磁波)方法发现目标并测定其空间位置的装置。随着雷达技术的发展,现代雷达不仅可以对目标进行定位,还可以测量目标的速度、对目标进行成像甚至测量目标的大小和材料特性。所有利用雷达波来检测物体速度的原理,其理论基础皆源自于“多普勒效应”,...

weixin_52801934的博客 6315

GitHub代理

【代码】GitHub代理。

Equinox_ji的博客 3888

全网首发:香橙派5MAX安装ubuntu20.04(换了官方桌面)及ros,运行LIVOX-mid360混合固态激光雷达,实际测试fastlio(只能说可以跑,还是有点吃力)

独家发布!!!香橙派5MAX安装ubuntu20.04(换了官方桌面)及ros,运行mid360混合固态激光雷达,测试fastlio(只能说可以跑,还是有点吃力),国货也算崛起了。

2402_82745259的博客 5997

加速访问GitHub的方法

可以在以下地址获取最新的Hosts地址:https://hosts.gitcdn.top/hosts.txt 或者 https://gitlab.com/ineo6/hosts/-/raw/master/next-hosts,然后将其中的内容复制到系统的hosts文件中即可。是一个旨在加速访问 GitHub 和相关资源的工具,支持Windows / Linux / MacOS,下载地址:https://github.com/WangGithubUser/FastGitHub/releases。

BinField的专栏 7127

深入解析DDR5 SDRAM中的CA训练模式(CATM):原理与实现

本文深入解析DDR5 SDRAM中的CA训练模式(CATM),详细探讨其工作原理与实现方法。通过分析JESD79-5标准,揭示CATM在时序校准、信号质量优化和系统稳定性方面的核心价值,并提供硬件设计考量和系统级调试技巧,帮助工程师解决高速内存系统中的信号完整性问题。

weixin_29235923的博客 383

Ubuntu 22.04+/WSL2 中解决 `error: externally-managed-environment` 并成功安装 PyTorch + vLLM 的完整指南

Ubuntu 22.04+/WSL2 因遵循 PEP 668 规范,系统 Python 被标记为“外部管理”,导致直接使用 pip install 安装包时报错 externally-managed-environment。解决方案是创建虚拟环境: 通过 python3 -m venv ~/vllm-env 创建隔离环境 激活环境后安装 PyTorch(CUDA 12.1)和 vLLM 避免使用 sudo pip 或 --break-system-packages,防止破坏系统依赖 关键点: 虚拟环

刘一说的IT专栏 296

github 设置代理

【代码】github 设置代理。

qq_30811703的博客 2083

全面指南:PyTorch与ROCm版本兼容性及多版本环境管理

本文详细介绍了在AMD GPU上配置PyTorch开发环境的完整流程,重点解决版本兼容性和多版本ROCm环境管理问题。主要内容包括:1) PyTorch与ROCm版本对应关系查询;2) 四种查看ROCm版本的方法;3) 使用update-alternatives管理多版本ROCm;4) 环境变量配置与冲突解决方案;5) 完整的验证流程和性能测试方法。文章提供了最佳实践建议和故障排除清单,帮助开发者快速搭建稳定高效的深度学习开发环境,充分发挥AMD GPU硬件性能。通过系统化的验证流程确保各组件协同工作,解决

数字人生 606

提交代码到github时使用代理

通过上面的步骤,就可以使用 VPN 访问 GitHub 并 Clone 仓库了。需要注意的是,使用代理可能会影响 Git 的性能,因此建议在完成操作后及时取消代理设置。在使用 VPN 访问 GitHub 时,可以将 Git 的代理设置为 VPN 的代理,以便在 Git clone 时通过 VPN 访问 GitHub。分别为 VPN 的代理地址和端口号。命令可以取消代理设置。

Xzike的博客 4847

26、电子测量与旋转编码器控制技术解析

本文深入解析了电子测量中的电感测量技术与旋转编码器的控制方法。介绍了LC电路振荡原理、滤波器类型及其应用,并通过代码实现了基于脉冲宽度的电感值计算。对比了陶瓷电容与电解电容在高频测量中的性能差异。在旋转编码器部分,详细阐述了其工作原理,提出了抖动问题和检测遗漏的解决方案,包括中断检测法和基于4位状态映射的高精度控制方法。文章还探讨了相关技术在电力系统、通信设备、工业自动化和智能家居中的应用,并展望了高精度、智能化、小型化和无线化的发展趋势,为电子系统设计提供了实用指导和技术参考。

elastic6hunter的博客 97

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

github 新手教程 (含代理服务器和无代理服务器两种模式)

1)Git官方下载下载地址2)站内下载地址。

u_topian的专栏 2978

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

git配置代理(github配置代理)

命令行配置代理方式一git config --global http.proxy http://代理服务器地址:端口号git config --global https.proxy https://代理服务器地址:端口号如果有用户名密码按照下面命令配置 git config --global http.proxy http://用户名:密码@代理服务器地址:端口号git config --glo...

李潇然的博客 3374

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

github代理-github

github 代理 网址:https://ghproxy.com/ 终端命令行 支持终端命令行 git clone , wget , curl 等工具下载. 支持 raw.githubusercontent.com , gist.github.com , gist.githubusercontent.com 文件下载. 注意:不支持 SSH Key 方式 git clone 下载. git clone git clone https://ghproxy.com/https://github.com/st

LLY_A_的博客 3万+

【git】配置代理访问github

proxy

突围 2220

设置github 代理

场景:执行CI需要下载GitHub仓库源码。访问很慢,有时会被中断。因此需要配置github代理。代理网站更新频繁,可以在搜索引擎搜索关键词`github代理网站`,寻找最新可靠的代理网站。真正配置在` ~/.gitconfig`文件里。

2301_79308687的博客 2559

Git 配置网络代理

【代码】Git 配置网络代理。

代码大兵 1214

git通过ssh代理连接github(gitee不支持),并更改端口

Hostname ssh.github.com和ProxyCommand nc -X connect -x 127.0.0.1:3128 %h %p 定义对服务器 github.com 的 ssh 调用应该重新路由到端口 3128 上的代理服务器 127.0.0.1,并且服务器不应该是 github.com 而是更改为ssh.github.com。这是 github 允许使用 git 或 ssh 协议通过 https(端口 443)连接到服务器(That is the server where github

nefu_ljw的博客 4315

Github设置代理

可以单独给某个项目设置代理,用参数–local。

ounata的博客 957

github设置代理

。。。

HongDaYu的搬砖之路 2066
上一篇: pathlib一个优雅的路径操作模块,碾压os
下一篇: Python字典:还有我不知道高阶玩法?
Dream丶Killer
Dream丶Killer 优质创作者: python技术领域 优质创作者: python技术领域
博客等级 码龄8年 7万+粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dream丶Killer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值