使用IP代理池伪装你的IP(python)

如何伪装你的 IP 呢?

对于 python 来说,使用代理访问很简单,就拿我们经常使用的 requests 库来说,

使用代理 ip如下:

定义代理 IP

proxies = {
    'http':'http://xx.xxx.xxx.xxx:xxxx',
    'http':'http://xxx.xx.xx.xxx:xxx',
    ....
}

使用代理

response = requests.get(url,proxies=proxies)

这样就可以使用你定义的代理地址去访问网站了。

那么,如何获取代理地址呢?可以搞一个 IP 代理池

​ 主要就是通过 python 程序去抓取网上大量免费的代理 ip,然后定时的去检测这些 ip 可不可以用,那么下次你要使用代理 ip 的时候,你只需要去自己的 ip 代理池里面拿就行了。

下面是一个不错的开源 ip 代理池

https://github.com/Python3WebSpider/ProxyPool.git

如何使用呢?

首先使用 git clone 将源代码拉到你本地

git clone https://github.com/Python3WebSpider/ProxyPool.git

接着在你 clone 下来的文件目录中,安装相关所需的 python 模块

pip install -r requirements.txt

接下来开启你的 redis

# redis启动命令
redis-server

在这里插入图片描述
redis 的默认端口就是 6379

接着就可以运行 run.py 了

代理池开始运行
 * Running on http://0.0.0.0:5555/ (Press CTRL+C to quit)
开始抓取代理
抓取器开始执行
Crawling http://www.66ip.cn/1.html
正在抓取 http://www.66ip.cn/1.html
抓取成功 http://www.66ip.cn/1.html 200
成功获取到代理 201.69.7.108:9000
成功获取到代理 111.67.97.58:36251
成功获取到代理 187.32.159.61:51936
成功获取到代理 60.13.42.154:9999
成功获取到代理 106.14.5.129:80
成功获取到代理 222.92.112.66:8080
成功获取到代理 125.26.99.84:60493
...

这时候在你的 redis 中就有爬取到的代理 ip 了
在这里插入图片描述
项目跑起来之后,你就可以访问你的代理池了,比如随机获取一个代理 ip 地址:

http://localhost:5555/random

这样访问之后就会获取到一个代理 ip

在代码中获取代理也不在话下啦

import requests

PROXY_POOL_URL = 'http://localhost:5555/random'

# 获取代理
def get_proxy():
    try:
        response = requests.get(PROXY_POOL_URL)
        # 如果请求成功,返回一个代理地址
        if response.status_code == 200:
            return response.text # 54.233.130.197:8080
    except ConnectionError:
        return None

real_proxy = 'http://' + get_proxy()

这样,我们就成功的在我们的代理池中获取代理 ip了。

转载自:https://blog.csdn.net/weixin_42469142/article/details/89943898?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  • 3
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值