Python|如何构建自己的IP池
*一步:找到一些IP代理的网站,如快代理:
通过一般的爬虫思路将IP爬取下来,将爬下来的IP放在列表中存起来,要注意的是IP的格式一般为字典{HTTP:Ip:端口}。代码如下:
import requests
import parsel
import time
ip_list = []
for i in range(1,30):
url = 'https://www.kuaidaili.com/free/inha/{}/'.format(i)
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'}
response = requests.get(url,headers=header)
html1 = parsel.Selector(response.text)
h = html1.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')
for t in h:
ip_dict = {}
h2 = t.xpath('./td[4]/text()').extract_first()
h3 = t.xpath('./td[1]/text()').extract_first()
h4 = t.xpath('./td[2]/text()').extract_first()
# print(h2,h3,h4)
ip_dict[h2] = h3+':'+h4
ip_list.append(ip_dict)
time.sleep(0.5)
print(ip_dict)
爬取过程简单,先确定url,找到规律,利用循环爬取数据。用xpath来提取数据,并按照爬虫IP的格式建立字典,用列表存放字典。有一个小问题该网站有爬取速度限制,则可以通过time.sleep来控制爬取速度。
第二步:测试
在request方法中,可以通过proxies参数来伪装ip.可以先建立一个测试的函数,用这个IP去访问一个网站,如果得到反映,那么这个IP就可以使用。代码如下:
def check(list):
header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'}
can = []
for i in list:
responses = requests.get('https://www.bilibili.com/',headers = header,proxies = i,timeout= 0.2)
if response.status_code == 200:
can.append(i)
return can
更多培训课程,学习资讯,课程优惠等学校信息,请进入 西安新城区Web培训西安碑林区Python培训西安莲湖区Linux云计算培训 网站详细了解,免费咨询电话:400-998-6158