Python中IP代理池怎么构建?Python如何构建有效的IP代理池

ip代理池是python爬虫程序开发中会使用到的一个东西,它的意思就是ip地址的集合 。而在之前的一些文章之中小编也给大家介绍过了ip代理池如何创建,但是这些ip都是没有经过验证是否有效的 。而这篇文章会来给大家分享有效ip代理池的构建教程,往下看看吧 。

Python中IP代理池怎么构建?Python如何构建有效的IP代理池

文章插图
1.那么第一步还是一样的操作,将需要使用的模块给导入到python程序之中 。那么这次需要使用到的模块有requests、re、telnetlib三个,代码如下所示:
import requestsimport reimport telnetlib2.第二步就是去定义三个变量来保存不同的数据,第一个变量url放的是可以获取到免费ip的网址 。第二个变量header则是一个请求时的头文件信息,具体数据可以根据需要访问的网页修改 。第三个则是请求网址后返回的ip地址文本信息,代码如下:
url='http://www.66ip.cn/nmtq.php?getnum=100000&isp=0&anonymoustype=4&start=&+/ports=&export=&ipaddress=&area=2&proxytype=0&api=66ip'header = {'User-agent':'','Connection':'close'}page_text = requests.get(url=url,headers=header).text3.那么在text这个字符串之中实际上就是已经包含了可以去使用的ip地址,那么要在这些杂乱的数据中将这些ip地址的具体信息取出来就得使用到正则表达式了 。编写出一个正则规则,然后调用findall()方法将所有匹配的字符串都返回到列表内,代码如下:
p = r'(?:((?:\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(?:\d|[1-9]\d|1\d{2}|2[0-5][0-5])+/\.(?:\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(?:\d|[1-9]\d|1\d{2}|2[0-5][0-5]))+/\D+?(6[0-5]{2}[0-3][0-5]|[1-5]\d{4}|[1-9]\d{1,3}|[0-9]))'iplist = re.findall(p,page_text)【Python中IP代理池怎么构建?Python如何构建有效的IP代理池】4.那么最后一步就是比较简单了,循环遍历这个保存了代理ip的列表 。然后调用telnetlib模块测试一下这个ip是否有效,有效的标准就是可以快速访问网站并且不会被当做爬虫拦截 。有效的话就将其写入到文件之中,代码如下:
for i in iplist:    ip = i[0]+':'+i[1]+'\n'    try:        telnetlib.Telnet(i[0], port=i[1], timeout=3)    else:        print(ip)        with open('ip.txt', 'a+', encoding='utf-8') as fp:            fp.write(ip)以上就是关于“Python中IP代理池怎么构建?Python如何构建有效的IP代理池”的全部内容了,希望对你有所帮助 。

    推荐阅读