解决方案

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

seo靠我 2023-09-22 22:04:55

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

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

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

起始网页:https://www.xicidaili.cSEO靠我om/nn/1

# -*- coding: utf-8 -*-# 1. 爬取西刺代理网站的国内高匿代理的IP地址和端口 # 2. 使用随机用户代理生成器 # 3. 如何使SEO靠我用获取的高匿代理 # 高匿代理:服务器只能发现代理的地址,但是发现不了你真实的IP地址 # 起始网页:https://www.xicidaili.com/nn/1impSEO靠我ort requests from lxml import etree import user_agentdef crawl_xicidaili():# 用于存储有效ISEO靠我P地址的空列表global ip_listip_list = []# 爬取20页的代理IP地址for i in range(1, 20):start_url = https://www.xicidaiSEO靠我li.com/nn/{}.format(i)# 随机生成用户代理,每次请求都会变化user_agents = user_agent.generate_user_agent()headers = {UsSEO靠我er-Agent: user_agents}# 请求获取网页,指定网页源码相同的编码格式res = requests.get(url=start_url, headers=headers)res.enSEO靠我coding = utf-8# 将网页源码str格式转换成xpath支持的html格式# 转换之后html类型:<class lxml.etree._Element>html = etree.HTMLSEO靠我(res.text, etree.HTMLParser())# 提取IP地址和端口所在的所有标签# 使用火狐浏览器,查看元素,右键复制table标签所在的xpath路径addresses = htmlSEO靠我.xpath("//table[@id=ip_list]//tr")# 循环上面得到的所有标签,注意tr[1]是栏目栏,tr[2]开始才是IP地址栏# 遍历每个IP标签,提取有效的IP最后添加到ip_SEO靠我list中for address in addresses[1:]:# 再次确认判断一下地址是否为高匿地址:if address.xpath("./td[5]/text()")[0] == "高匿":SEO靠我ip_address = address.xpath("./td[2]/text()")[0]ip_port = address.xpath("./td[3]/text()")[0]ip_proxy SEO靠我= ip_address + ":" + ip_port# 验证IP地址是否可以正常使用,使用代理请求是否成功test_url = "https://www.hao123.com/"# 设置代理地址参SEO靠我数,# 使用IP代理格式类似:http://127.0.0.1:8118# 使用的字典的键值形式设置IP代理proxies = {http: http:// + ip_proxy,https: httSEO靠我ps:// + ip_proxy,}# 代理的格式:proxies = {"http": "http://10.10.1.10:3128","https": "http://10.10.1.10:10SEO靠我80",}# 使用代理IP请求百度首页,加入代理和超时参数,代理无效打印语句# requests代理使用参考:https://2.python-requests.org/zh_CN/latest/usSEO靠我er/advanced.html?highlight=%E4%BB%A3%E7%90%86#proxiestry:res = requests.get(url=test_url, headers=heSEO靠我aders, proxies=proxies, timeout=1)if res.status_code == 200:print("该IP地址有效:", ip_proxy)ip_list.appenSEO靠我d(ip_proxy)# 将可用的IP写入文件with open(ip_proxy_xici.txt, mode=a+, encoding=utf-8) as f:f.write(ip_proxy +SEO靠我 "\n")except Exception:print("该IP地址已失效:", ip_proxy, Exception)if __name__ == __main__:crawl_xicidailSEO靠我i()print(ip_list)
“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2