python实现ip代理池功能示例
Python  /  管理员 发布于 7年前   319
本文实例讲述了python实现ip代理池功能。分享给大家供大家参考,具体如下:
爬取的代理源为西刺代理。
# !/usr/bin/env python# -*- coding: utf-8 -*-# @Version : 1.0# @Time : 2018/10/23 上午10:40# @Author : Yeoman# @Description :import urllib.requestimport lxml.etreeimport telnetlibimport osheaders = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'}def get_proxy(page_num): # 获取页面 req = urllib.request.Request('http://www.xicidaili.com/nn/{}'.format(page_num), headers=headers) # 构造request请求 response = urllib.request.urlopen(req) # 发送请求 html = response.read() html = html.decode('utf-8') # print(html) # 解析页面 proxy_list = [] selector = lxml.etree.HTML(html) rows = selector.xpath('//*[@id="ip_list"]//tr') rows_total = len(rows) row_xpath_head = '//*[@id="ip_list"]//tr[' row_ip_xpath_tail = ']/td[2]/text()' row_port_xpath_tail = ']/td[3]/text()' for i in range(1, rows_total): ip_xpath = row_xpath_head + str(i+1) + row_ip_xpath_tail port_xpath = row_xpath_head + str(i+1) + row_port_xpath_tail ip = selector.xpath(ip_xpath)[0] port = selector.xpath(port_xpath)[0] ip_port = ip + ':' + port proxy_list.append(ip_port) return proxy_list# 检测代理ip是否可用def test_proxy_ip_port(proxy_ip_port): print('当前代理ip:{}'.format(proxy_ip_port)) ip_port = proxy_ip_port.split(':') ip = ip_port[0] port = ip_port[1] # 用telnet来验证ip是否可用 try: telnetlib.Telnet(ip, port, timeout=10) except: return False else: return True# 把有效的ip写入本地def write_ip(proxy_ip): with open('./ip.txt', 'a') as f: f.write(proxy_ip + '\n')# 删除文件def del_file(): file_path = './ip.txt' if os.path.exists(file_path): os.remove(file_path)def run(): del_file() proxy_ip_port_list = [] for i in range(1, 6): # 前5页 proxy_ip_port_list += get_proxy(i) for i in range(100): # 一页有100条 proxy_ip_port = proxy_ip_port_list[i] is_valid = test_proxy_ip_port(proxy_ip_port) print(is_valid) if is_valid: # 写入ip到本地 write_ip(proxy_ip_port)if __name__ == '__main__': run()
更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号