帮助中心

   

热门搜索: 免费续期  推广  永久会员

两种代理IP池的搭建方法

爬虫需要有一个代理IP池,这个IP池能够起到什么作用呢?它能够帮助我们在开展爬虫的时候,成功破除网站反爬虫的限制,这样我们的爬虫程序就能够不停的抓取运行。

 

两种代理IP池的搭建方法

 

下面分享两种搭建代理IP池的方式给大家,详细代码如下:

 

IP代理池构建一:

 

适合IP存活时间长,稳定性好的代理ip,随机调用列表里的ip

 

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import urllib

from urllib import request

import random #引入随机模块文件

def dai_li_ip():

ip = [

‘110.73.8.103:8123’,

‘115.46.151.100:8123’,

‘42.233.187.147:19’

]

shui = random.choice(ip)

print(shui)

proxy = urllib.request.ProxyHandler({“https”: shui}) # 格式化IP,注意,第一个参数,请求目标可能是http或者https,对应设置

opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler) # 初始化IP

urllib.request.install_opener(opener) # 将代理IP设置成全局,当使用urlopen()请求时自动使用代理IP

#请求

dai_li_ip() #执行代理IP函数

url = “https://www.baidu.com/”

data = urllib.request.urlopen(url).read().decode(“utf-8”)

print(data)

 

IP代理池构建二:接口方式

 

每次调用第三方接口动态获取ip,适用于IP存活时间短的情况

 

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import urllib

from urllib import request

import json

def dai_li_ip():

url = “http://http-webapi.zhimaruanjian.com/getip?num=1&type=2&pro=&city=0&yys=0&port=11&time=1&ts=0&ys=0&cs=0&lb=1&sb=0&pb=4&mr=1”

data = urllib.request.urlopen(url).read().decode(“utf-8”)

data2 = json.loads(data) # 将字符串还原它本来的数据类型

print(data2[‘data’][0])

ip = str(data2[‘data’][0][‘ip’])

dkou = str(data2[‘data’][0][‘port’])

zh_ip = ip + ‘:’ + dkou

print(zh_ip)

proxy = urllib.request.ProxyHandler({“https”: zh_ip}) # 格式化IP,注意,第一个参数,请求目标可能是http或者https,对应设置

opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler) # 初始化IP

urllib.request.install_opener(opener) # 将代理IP设置成全局,当使用urlopen()请求时自动使用代理IP

#请求

dai_li_ip() #执行代理IP函数

url = “https://www.baidu.com/”

data = urllib.request.urlopen(url).read().decode(“utf-8”)

print(data)

 

以上是迅联加速带给大家的2个搭建方法,大家可以直接使用,测试一下有效性。

关闭
0797-8539189
关注微信公众号,免费送2小时时长