写点什么

爬虫 IP 代理池代码记录

用户头像
空城机
关注
发布于: 2021 年 04 月 18 日
爬虫IP代理池代码记录

使用 python 进行爬虫访问网站时,大部分时候需要当心 IP 访问过于频繁而被网站封锁


这个时候就需要使用一下 IP 代理池了使用的是网上的免费 IP 网站:国内高匿代理

注意,此链接可能会过期,如果访问新的 IP 网站,需要获取的数据结构就有可能发生变化



代码:


import requestsimport timeimport randomfrom lxml import etree
# 获取def get_ip_list(headers, page): ip_list = [] for i in range(int(page)): # 爬取免费的IP url = 'https://www.kuaidaili.com/free/inha/{}/'.format(i+1) # print("爬取网址为:", url) #获取代理IP地址 web_data = requests.get(url, headers=headers) if web_data.status_code == 200: tree0 = etree.HTML(web_data.text) ip_lists = tree0.xpath('//table/tbody/tr/td[@data-title="IP"]/text()'); port_lists = tree0.xpath('//table/tbody/tr/td[@data-title="PORT"]/text()') type_lists = tree0.xpath('//table/tbody/tr/td[@data-title="类型"]/text()') # print(ip_lists) # print(port_lists) for x,y in zip(ip_lists, port_lists): ip_list.append(x + ":" + y) time.sleep(3) # 防止访问频率过快,被封 # print(len(ip_list)) return ip_list
# 组建随机IP地址def get_random_ip(ip_list):#获取代理IP地址 proxy_list = [] for ip in ip_list: proxy_list.append('http://' + ip) proxy_ip = random.choice(proxy_list) proxies = {'http': proxy_ip} return proxies
if __name__ == '__main__': headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36' } #获取代理IP地址 ip_list = get_ip_list(headers=headers, page=3) print(ip_list)
复制代码


当然了,这一部分获取到的 IP 地址是即爬即用的,并没存储下来

如果想要存储和使用其实也比较容易,我存储在了 txt 中

记录 IP 到 txt 中

#  记录IP到txtdef save_ip_list():    header = {'User-Agent': random.choice(user_agent_list)}    ip_list = get_ip_list(headers=header, page=3)    with open('userCsdn/ipList.txt', 'a') as fp:        for ip in ip_list:            fp.write('http:' + ip + '\n')        print('记录完成')        fp.close()
复制代码


获取 IP (注意:从 txt 中获取回来 IP 时会返回\n,所以要 strip 截取掉\n)

# 读取IP——txt,返回一个随机IPdef return_ip():    with open('userCsdn/ipList.txt', 'r') as fp:        ip_list = fp.readlines()        fp.close()    ip = random.choice(ip_list)    ip = ip.strip('\n')    return ip
复制代码


发布于: 2021 年 04 月 18 日阅读数: 26
用户头像

空城机

关注

曾经沧海难为水,只是当时已惘然 2021.03.22 加入

业余作者,在线水文 主要干前端的活,业余会学学python 欢迎各位关注,互相学习,互相进步

评论

发布
暂无评论
爬虫IP代理池代码记录