免费代理IP池如何搭建?

作者:IPIDEA

2022-09-27 15:07:16

现在网络爬虫非常流行,导致许多网站对爬虫的防御越来越严格。如果你不使用ip代理,有些数据比较大,根本爬不下去。自从有了一个ip代理池后,访问允许访问公开数据就变得简单许多,下面IPIDEA免费介绍一个代理IP池建造教程给大家。

免费代理IP池如何搭建?.png

1.取代理json信息

2.分析

显然每一行都是一个json数据,但是你在整个页面上得到的只是一个字符串,每一行的末尾都会换行,也就是说每一行的末尾都有"",所以思路很清晰,用requests整个页面text(字符串),然后使用split()每行分割后组成的列表,便于此列表使用json.loads()方法,将每行的字符串转换为json对象,最后取值。

3.代码部分

#!/usr/bin/envpython3

#coding:utf-8

#lanxing

importjson

importtelnetlib

importrequests

importrandom

proxy_url=https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list

#proxyList=[]

#定义函数,验证ip代理是否有效

defverify(ip,port,type):

proxies={}

try:

telnet=telnetlib.Telnet(ip,port=port,timeout=3)#用这个ip请访问,3s自动断开,返回tiemout

except:

print(unconnected)

else:

#print(connectedsuccessfully)

#proxyList.append((ip+:+str(port),type))

proxies[type]=type

proxies[host]=ip

proxies[port]=port

proxiesJson=json.dumps(proxies)

##保存到本地proxies_ip.json文件

withopen(proxies_ip.json,a+)asf:

f.write(proxiesJson+)

print("已写入:%s"%proxies)

#定义函数,带着url获取数据的地址

defgetProxy(proxy_url):

response=requests.get(proxy_url)

#print(type(response))

#用split()每行分割后形成的列表,以消除换行的影响

proxies_list=response.text.split()

forproxy_strinproxies_list:

#用json.loads()方法,将每行的字符串转换为json对象,最后取值

proxy_json=json.loads(proxy_str)

host=proxy_json[host]

port=proxy_json[port]

type=proxy_json[type]

verify(host,port,type)

#主函数,入口

if__name__==__main__:

getProxy(proxy_url)

关于ip对于代理池的建设,您还可以在网络上找到许多相关教程。如果你想简单一点,你可以直接从可靠的代理服务提供商那里购买ip代理使用,这样IP质量更高,也更安全。


*ipidea提供的服务必须在境外网络环境下使用

热门资讯