获取免费的开源代理,并进行筛选
最近用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"