联系方式

咨询热线:400-998-6158

点击此处免费预约试听课程»

常见问题
学习资讯
学习资讯

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

相关课程