用Python获取免费的开源代理,并筛选出较快的代理

本文介绍了如何使用Python从开源项目获取免费代理,并通过多进程筛选出快速有效的代理IP。首先,利用requests库爬取并保存代理数据,然后初步筛选出请求成功的代理,再通过多进程加速筛选过程。最后,通过try-except处理可能的代理失效问题,经过多次筛选得到高质量代理。完整代码已上传至GitHub。
摘要由CSDN通过智能技术生成

获取免费的开源代理,并进行筛选

最近用Python爬数据需要用到了代理,发现网上很多免费的代理都不能用,于是对代理进行了筛选,挑选出较快的代理。

1 获取免费代理

首选先获取大量的代理来用于筛选。开始搜索了一下代理,发现西刺代理、快代理很多不能用(可能是用的人太多了),最后找到了github的开源代理,发现还可以。传送门:github的开源代理
防止频繁访问开源代理的网站,我们把代理数据爬下来,保存在本地文本当中,下次要获取时,直接读取本地文本即可。我们用python的requests来爬取数据,requests这个库简直是神一般的存在,写出这个库的人简直是天使好嘛(好了好了跑偏了)。主要思路是:用requests来GET网页,开源的代理网页很方便进行json解析,直接解析获取想要的数据。代码如下:

import requests
import re,json,os

def save_ips(isCover=False):
    """保存所有代理IP的数据"""
    url = "https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list"# github上的开源IP
    r = requests.get(url)
    wb = r.text
    # 处理数据
    proxies = []
    pattern = re.compile(r'{.*?}')
    data = pattern.findall(wb, re.S)
    for d in data:
        dict_obj = json.loads(d)
        if dict_obj["anonymity"] == "high_anonymous":  # 这里我只保存了高匿代理
            temp = {}
            temp["type"] = dict_obj["type"]
            temp["host"] = dict_obj["host"]
            temp["port"
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值