18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 动态ua与ip代理池的维护

动态ua与ip代理池的维护

时间:2023-04-26 18:45:01 | 来源:网站运营

时间:2023-04-26 18:45:01 来源:网站运营

动态ua与ip代理池的维护:一,动态的ua

二,动态的ip代理








动态的ua

使用前先安装

pip install fake-useragent


代码

"""使用前需要安装pip install fake-useragent"""import fake_useragentobj = fake_useragent.UserAgent()print(obj, type(obj))for i in range(10): ua = obj.random print(ua) print('发起请求',i)








ip代理池的维护

  1. 构建自己的ip代理池
  2. 检察ip代理池中内容的可用性






一 构建ip代理池

举例,从这个网站获取数据

https://www.xicidaili.com/wt/写一个方法,爬取其中的数据,将其保存(文件,数据库)

爬取数据的时候,要注意去重







二 维护ip代理池,每天在第一次使用的时候,可以维护

从数据库中读取出全部的数据,依次得到每一个ip代理

使用这个ip对某一个网站进行访问,根据访问的状态码,判断代理是否可用

参考代码

url = "https://www.baidu.com"proxies_list = [{"http":"http://27.152.91.52:9999"}]unuseful_list = [] # 失效的ip代理列表for pro in proxies_list: print('当前代理', pro) headers = {"User-Agent": obj.random} res = requests.get(url, headers=headers, proxies=pro) if res.status_code == 200: print('请求成功,这是一个可用的代理') else: print('请求失败,不可用的代理') unuseful_list.append(pro)


删掉数据以后,还需再去爬,要确保ip代理池里的内容够用

比如unuseful_list 装了6个失效的ip代理

那么我们就调一个方法,去爬6个新的ip代理就可以了




# 1 测试ip代理的可用性,不可用的放在一个列表中存着url = "https://www.baidu.com"proxies_list = [{"http":"http://27.152.91.52:9999"}]unuseful_list = [] # 失效的ip代理列表for pro in proxies_list: print('当前代理', pro) headers = {"User-Agent": obj.random} res = requests.get(url, headers=headers, proxies=pro) if res.status_code == 200: print('请求成功,这是一个可用的代理') else: print('请求失败,不可用的代理') unuseful_list.append(pro)# 2,删除不可用的# 批量处理,把失效的ip代理全部从源数据中删掉# 从原始数据中,把不可用的代理删掉for unuse in unuseful_list: if unuse in proxies_list: proxies_list.remove(unuse)# 3,ip代理的补充,前面删了多少,我要补充多少unuse_num = len(unuseful_list)proxies_list = get_proxies_list(unuse_num)# 把新增的ip列表,添加到原数据中proxies_list.extend(proxies_list)# 代理的维护工作就完成


附加的功能

def get_one_ip(): # 获取一个ip地址 ip = {"http":"http://27.152.91.52:9999"} # 验证是否已存在 # res = check_if_exist(ip) res=True # 如果ip已存在,那么自己再一次调用自己 if res == True: ip = get_one_ip() return ipdef get_proxies_list(num): """获得需要数量的不重复的ip""" proxies_list = list() for i in num: ip = get_one_ip() proxies_list.append(ip) return proxies_list



关键词:维护,代理,动态

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭