python爬虫代理ip池搭建

最近大量爬取数据的时候总会遇到被封ip的情况,所有打算自己搭建一个代理ip池来使用。本次使用的是开源的ip代理池项目ProxyPool

1.下载redis数据库

redis安装

这里我选择直接下载redis的解压包形式,方便安装。下载地址:发布 ·TPORADOWSKI/REDIS (github.com)

下载完成直接解压就可以使用了,使用:redis-server.exe redis.windows.conf命令启动redis服务。也可以直接双击启动程序来启动redis服务

redis可视化工具

安装完成redis后,搭配可视化工具使用会更方便一些。下载连接:https://github.com/uglide/RedisDesktopManager/releases/download/0.9.3/redis-desktop-manager-0.9.3.817.exe

下载完成后选择想要的安装位置直接安装就行了,直接连接本地就行了,什么也不用填,只需要设置名字就行。

2.下载开源 ip代理池---ProxyPool

ProxyPool安装

下载地址:GitHub - Python3WebSpider/ProxyPool: An Efficient ProxyPool with Getter, Tester and Server

下载压缩包解压即可。

ProxyPool配置

可以让chatgpt帮忙把需要用到项目注释换成中文,如果项目报错缺少模块的缺什么模块安装什么模块就好:

进入到对应目录下修改一些配置,如redis数据库地址,密码,想要使用记号库之类的。如果是跟本教程来做的,不用修改这些配置直接启动run.py运行项目就行了。

项目启动后redis数据库结果如下,这些IP都在程序帮我们获取到的可以使用的IP:

ProxyPool的原理简单说一下,就是这个程序去网上获取ip,然后拿回来进行检查,如果是好的就放入IP池里面,同时程序还会自己检查IP池,如果池中出现坏了的IP,程序会将此IP丢出IP池,并重新放入一个可用的IP进入IP池。

有了IP池后,我们就可以编写程序去调用redis数据库,从数据库中获取一个ip拿来使用。大致代码如下(ProxyPool项目需要一直运行着,因为需要他来不断的给IP池进行补充和检查IP):

复制代码
import requests

# 从redis中随机获取代理IP
PROXY_POOL_URL = 'http://localhost:6379/random'

proxies = {
    'http': 'http://{}'.format(PROXY_POOL_URL),
    'https': 'https://{}'.format(PROXY_POOL_URL),
}

url = "目标网站的url"

# 使用代理ip去请求网站
res = response = requests.get(url, proxies=proxies)
相关推荐
苏宸啊几秒前
linux网络编程udp服务器和客户端代码编写(echo版本和字典版本)
linux·网络
奇树谦2 小时前
HDD 为什么适合顺序大文件读写:从 RAID 5 到 RAID 50 的原理与性能分析
linux·运维·网络
嵌入式阿蔡2 小时前
Linux_01:交叉编译与开发环境实战——从单片机跨到 Linux 的第一道坎
linux·运维·网络·单片机·嵌入式硬件·嵌入式实时数据库
雷电小将军3 小时前
诡秘之主手游占卜家序列加点 诡秘之主手游占卜家怎么加点
服务器·网络·游戏·电脑·玩游戏
陈皮波比茶4 小时前
Python项目实战-网络机器人(爬虫)
开发语言·网络·爬虫·python·机器人
白猫不黑4 小时前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
wWYy.4 小时前
Linux发送数据包的过程
linux·网络
云飞云共享云桌面4 小时前
自动化设备厂 10 人研发团队,如何共用一台服务器做 SolidWorks 建模?
运维·服务器·网络·3d·自动化·制造
小谢取证5 小时前
实战案例分享:用 AI 绕过模拟器反取证进行动态抓包,落地 APK 真实 IP
大数据·网络·人工智能
xqwxbl5 小时前
小微企业差旅出行不用愁2026年头部商旅平台怎么选?看这篇就够了
大数据·网络·人工智能