西刺代理有效高匿代理爬取demo

发布时间:2025-12-09 16:17:32 浏览次数:3

1. 爬取西刺代理网站的国内高匿代理的IP地址和端口

2. 使用随机用户代理生成器

高匿代理:服务器只能发现代理的地址,但是发现不了你真实的IP地址

起始网页:https://www.xicidaili.com/nn/1

# -*- coding: utf-8 -*-# 1. 爬取西刺代理网站的国内高匿代理的IP地址和端口# 2. 使用随机用户代理生成器# 3. 如何使用获取的高匿代理# 高匿代理:服务器只能发现代理的地址,但是发现不了你真实的IP地址# 起始网页:https://www.xicidaili.com/nn/1import requestsfrom lxml import etreeimport user_agentdef crawl_xicidaili():# 用于存储有效IP地址的空列表global ip_listip_list = []# 爬取20页的代理IP地址for i in range(1, 20):start_url = 'https://www.xicidaili.com/nn/{}'.format(i)# 随机生成用户代理,每次请求都会变化user_agents = user_agent.generate_user_agent()headers = {'User-Agent': user_agents}# 请求获取网页,指定网页源码相同的编码格式res = requests.get(url=start_url, headers=headers)res.encoding = 'utf-8'# 将网页源码str格式转换成xpath支持的html格式# 转换之后html类型:<class 'lxml.etree._Element'>html = etree.HTML(res.text, etree.HTMLParser())# 提取IP地址和端口所在的所有标签# 使用火狐浏览器,查看元素,右键复制table标签所在的xpath路径addresses = html.xpath("//table[@id='ip_list']//tr")# 循环上面得到的所有标签,注意tr[1]是栏目栏,tr[2]开始才是IP地址栏# 遍历每个IP标签,提取有效的IP最后添加到ip_list中for address in addresses[1:]:# 再次确认判断一下地址是否为高匿地址:if address.xpath("./td[5]/text()")[0] == "高匿":ip_address = address.xpath("./td[2]/text()")[0]ip_port = address.xpath("./td[3]/text()")[0]ip_proxy = ip_address + ":" + ip_port# 验证IP地址是否可以正常使用,使用代理请求是否成功test_url = "https://www.hao123.com/"# 设置代理地址参数,# 使用IP代理格式类似:'http://127.0.0.1:8118'# 使用的字典的键值形式设置IP代理proxies = {'http': 'http://' + ip_proxy,'https': 'https://' + ip_proxy,}# 代理的格式:'''proxies = {"http": "http://10.10.1.10:3128","https": "http://10.10.1.10:1080",}'''# 使用代理IP请求百度首页,加入代理和超时参数,代理无效打印语句# requests代理使用参考:https://2.python-requests.org/zh_CN/latest/user/advanced.html?highlight=%E4%BB%A3%E7%90%86#proxiestry:res = requests.get(url=test_url, headers=headers, proxies=proxies, timeout=1)if res.status_code == 200:print("该IP地址有效:", ip_proxy)ip_list.append(ip_proxy)# 将可用的IP写入文件with open('ip_proxy_xici.txt', mode='a+', encoding='utf-8') as f:f.write(ip_proxy + "\n")except Exception:print("该IP地址已失效:", ip_proxy, Exception)if __name__ == '__main__':crawl_xicidaili()print(ip_list)
需要做网站?需要网络推广?欢迎咨询客户经理 13272073477