1 importrequests2 importurllib.request3 from bs4 importBeautifulSoup4 importrandom,time,re5 importrandom6 from urllib.request importFancyURLopener7

8 IPRegular = r"(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])"

9 headers = {'User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}10 header1 = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64)''AppleWebKit/537.36 (KHTML, like Gecko)''Ubuntu Chromium/44.0.2403.89'

11 'Chrome/44.0.2403.89''Safari/537.36'}12 #定义用于存放IP的列表

13 IPs =[]14 proxy_list =[]15

16

17 #代理一:

18 defgetIPList1():19 for i in range(1, 3):20 req = urllib.request.Request(url='http://www.xicidaili.com/nt/{0}'.format(i), headers=header1)21 r =urllib.request.urlopen(req)22 soup = BeautifulSoup(r,'html.parser',from_encoding='utf-8')23 table = soup.find('table', attrs={'id': 'ip_list'})24 tr = table.find_all('tr')[1:]25 #解析得到代理ip的地址,端口,和类型

26 for item intr:27 tds = item.find_all('td')28 temp_dict ={}29 kind = "{0}:{1}".format(tds[1].get_text().lower(), tds[2].get_text())30 proxy_list.append(kind)31 returnproxy_list32

33 #代理二:

34 defgetIPList2():35 #代理网站的地址的格式

36 #根据观察url,发现各省的代理IP页面由数字控制

37 #所以我们先用占位符{}代替这个数字的位置

38 url = 'http://www.66ip.cn/areaindex_16/{}.html'

39 for page in range(10):40 #先填占位符生成一个省的url

41 url =url.format(page)42 #get()方法访问,得到一个Response对象

43 rsp =requests.get(url)44 #Response对象的text属性得到源码

45 text =rsp.text46 #用BeautifulSoup()方法将源码生成能被解析的lxml格式文件

47 soup = BeautifulSoup(text, 'lxml')48 #用find()找放置IP的表

49 table = soup.find(name='table', attrs={'border': '2px'})50 #用find_all()找到所以的IP

51 ip_list = table.find_all(name='tr')52 #循环遍历每个IP

53 for addr inip_list:54 #观察源码发现第一个tr里的内容不是IP,所以跳过

55 if addr ==ip_list[0]:56 continue

57 #获取IP

58 ip = addr.find_all(name='td')[0].string59 #获取端口

60 port = addr.find_all(name='td')[1].string61 proxy = '%s:%s' %(ip, port)62 proxy_list.append(proxy)63 returnproxy_list64

65 #代理三:

66 defgetIPList3():67 request_list =[]68 headers ={69 'Host': 'www.iphai.com',70 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)',71 'Accept': r'application/json, text/javascript, */*; q=0.01',72 'Referer': r'http://www.iphai.com',}73 request_item = "http://www.iphai.com/free/ng"

74 request_list.append(request_item)75 for req_id inrequest_list:76 req = urllib.request.Request(req_id, headers=headers)77 response =urllib.request.urlopen(req)78 html = response.read().decode('utf-8')79

80 ip_list = re.findall(r'\d+\.\d+\.\d+\.\d+', html)81 port_list = re.findall(r'(\s\d+\s)', html)82 for i inrange(len(ip_list)):83 #total_count += 1

84 ip =ip_list[i]85 port = re.sub(r'(^\s*)|(\s*$)/g','',port_list[i])86 proxy = '%s:%s' %(ip, port)87 proxy_list.append(proxy)88 returnproxy_list89

90

91

92 if __name__ == "__main__":93 #选择可以访问的代理

94 list1 = ['http://www.66ip.cn/','https://www.xicidaili.com','http://www.iphai.com/free/ng']95 while 1==1:96 for url inlist1:97 try:98 r = requests.get(url, timeout=5,headers=header1)99 if r.status_code == 200:100 if url ==list1[0]:101 print ("OK 网站访问正常", url)102 IPs =getIPList2()103 elif url == list1[1]:104 print ("OK 网站访问正常", url)105 IPs =getIPList1()106 elif url == list1[2]:107 print ("OK 网站访问正常", url)108 IPs =getIPList3()109 break

110 except:111 print ("Error 不能访问!", url)112 break

113 print("获取的代理IP为:",IPs)114 time.sleep(10)

获得代理ippython_Python学习笔记六(免费获取代理IP)相关推荐

  1. 【K210】K210学习笔记六——MaixHub在线模型训练识别数字

    [K210]K210学习笔记六--MaixHub在线模型训练识别数字 前言 K210准备工作 数据的获取 MaixHub如何在线训练模型 训练模型在K210上的测试 小结 前言 本人大四学生,电赛生涯 ...

  2. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

    图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...

  3. JS学习笔记六:js中的DOM操作

    1. JS学习笔记六:js中的DOM操作 文章目录 1. JS学习笔记六:js中的DOM操作 1.1. 获取Dom节点 1.2. 元素属性的操作方式 1.3. DOM节点的创建.插入和删除 1.4. ...

  4. Java学习笔记 六、面向对象编程中级部分

    Java学习笔记 六.面向对象编程中级部分 包 包的注意事项和使用细节 访问修饰符 访问修饰符的注意事项和使用细节 面向对象编程三大特征 封装 封装的实现步骤(三步) 继承 继承的细节问题 继承的本质 ...

  5. Java之GUI编程学习笔记六 —— AWT相关(画笔paint、鼠标监听事件、模拟画图工具)

    Java之GUI编程学习笔记六 -- AWT相关(画笔paint) 参考教程B站狂神https://www.bilibili.com/video/BV1DJ411B75F 了解paint Frame自 ...

  6. Ethernet/IP 学习笔记六

    Ethernet/IP 学习笔记六 EtherNet/IP defines two primary types of communications: explicit and implicit (Ta ...

  7. 吴恩达《机器学习》学习笔记六——过拟合与正则化

    吴恩达<机器学习>学习笔记六--过拟合与正则化 一. 过拟合问题 1.线性回归过拟合问题 2.逻辑回归过拟合问题 3.过拟合的解决 二. 正则化后的代价函数 1.正则化思想 2.实际使用的 ...

  8. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  9. Python学习笔记六——画小猪佩奇

    目录 Python学习笔记六--画小猪佩奇 画布 画笔 属性设置 操纵命令 运动命令 画笔控制命令 全局控制命令 其他命令 Python学习笔记六--画小猪佩奇 使用Python的turtle库可以绘 ...

最新文章

  1. 中文预训练模型ZEN开源,效果领域内最佳,创新工场港科大出品
  2. 【pmcaff】 会员原创讨论贴:互联网产品部-如此的羁绊
  3. 源路由 小实验 小发现
  4. 装入归档文件时出现了一个错误linux_静态链接与动态链接(Linux)
  5. 网络强制消费案例剖析
  6. 实验二、XSS和SQL注入
  7. 让网站和APP更具动感的几点建议
  8. stl之vector的应用
  9. CSS的伪类 :before 和 :after
  10. Gentoo解决Windows系统txt文本中文乱码问题
  11. cocos2dx学习:TexturePacker的使用
  12. html文件是fla,FLASH 全屏、按ESC 退出全屏模式Fla及HTML源文件
  13. 用计算机模拟受力分析,科学网—CAE仿真分析应用之机械领域——元计算pFEPG - 施坤的博文...
  14. 国际标准战争的技术真相
  15. safari浏览网页打开速度很慢怎样解决
  16. 学习excel的使用技巧复制一列文本成新列去重
  17. 一个小型RISC-V开源处理器核介绍!
  18. Milestone 系统架构 及产品白皮书
  19. 升级iOS 15后iPhone无法连接App Store怎么办?
  20. 世界数学难题——哥尼斯堡七桥问题 哥尼斯堡七桥问题

热门文章

  1. 关于android 双击事件
  2. 一个servlet,多个dwr.xml配置文件
  3. 卸掉IE8,降级使用
  4. 对不起,如果真是那样,由我来说出那2个字……
  5. CCF201509-1 数列分段
  6. C语言课后习题(54)
  7. 掌握后可为孩子收藏的MySQL入门全套
  8. 圣诞快乐:Oracle Database 19c 的10大新特性一览
  9. FusionInsight怎么帮「宇宙行」建一个好的「云数据平台」?
  10. 多语言ASR?没有什么听不懂,15种语言我全都要