1 import requests
 2 from lxml import etree
 3
 4
 5 # 将可以使用的代理IP的信息存储到文件
 6 def write_proxy(proxies):
 7     print(proxies)
 8     for proxy in proxies:
 9         with open("ip_proxy.txt", 'a+') as f:
10             print("正在写入:", proxy)
11             f.write(proxy + '\n')
12     print("录入完成!!!")
13
14
15 # 解析网页,并得到网页中的代理IP
16 def get_proxy(html):
17     # 对获取的页面进行解析
18     selector = etree.HTML(html)
19     # print(selector.xpath("//title/text()"))
20     proxies = []
21     # 信息提取
22     for each in selector.xpath('//table[@id="ip_list"]/tr')[1:]:
23         # ip.append(each[0])
24         ip = each.xpath("./td[2]/text()")[0]
25         port = each.xpath("./td[3]/text()")[0]
26         proxy = ip + ":" + port
27
28         proxies.append(proxy)
29     print(len(proxies))
30     test_proxies(proxies)
31
32
33 # 验证已得到IP的可用性,本段代码通过访问百度网址,返回的response状态码判断(是否可用)。
34 def test_proxies(proxies):
35     proxies = proxies
36     url = "http://www.baidu.com/"
37     header = {
38         "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
39         }
40     normal_proxies = []
41     count = 1
42     for proxy in proxies:
43         print("第%s个。。" % count)
44         count += 1
45         try:
46             response = requests.get(url, headers=header, proxies={"http": proxy}, timeout=1)
47             if response.status_code == 200:
48                 print("该代理IP可用:", proxy)
49                 normal_proxies.append(proxy)
50             else:
51                 print("该代理IP不可用:", proxy)
52         except Exception:
53             print("该代理IP无效:", proxy)
54             pass
55     # print(normal_proxies)
56     write_proxy(normal_proxies)
57
58
59 def get_html(url):
60     header = {
61         "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
62     }
63     response = requests.get(url,headers=header,)
64     # print(response.text)
65     get_proxy(response.text)
66
67
68 if __name__ == "__main__":
69     base_url = "http://www.xicidaili.com/nn/%s/"
70     # 爬取3页数据
71     for i in range(1, 4):
72         url = base_url % i
73         get_html(url)

转载于:https://www.cnblogs.com/daihao9527/p/9508246.html

python3 爬取西祠代理IP数据相关推荐

  1. python爬虫——Scrapy入门(爬取西刺代理ip和port)

    一.创建项目 创建好的项目 二.创建爬虫 1.创建 一定要先进入刚才创建的爬虫项目文件中再创建爬虫 对比未创建爬虫,发现多了一个xici.py文件 2.查看网站君子协议(robots): 3.解释爬虫 ...

  2. python爬取高匿代理IP(再也不用担心会进小黑屋了)

    一起进步 为什么要用代理IP 很多数据网站,对于反爬虫都做了一定的限制,这个如果写过一些爬虫程序的小伙伴应该都深有体会,其实主要还是IP进了小黑屋了,那么为了安全,就不能使用自己的实际IP去爬取人家网 ...

  3. 手把手教你使用Python爬取西刺代理数据,不用担心我封IP了!

    /1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ...

  4. Python 多线程爬取西刺代理

    西刺代理是一个国内IP代理,由于代理倒闭了,所以我就把原来的代码放出来供大家学习吧. 镜像地址:https://www.blib.cn/url/xcdl.html 首先找到所有的tr标签,与class ...

  5. 爬取免费可用代理IP

    # _*_ coding:UTF-8 _*_ """程序:IP代理版本:2.0作者:鬼义虎神日期:2019年3月13日1.0功能:如何使用代理IP,验证代理IP可用性2. ...

  6. Python爬取西刺代理网页

    爬取西刺代理网页的信息,并保存到本地的TXT文本或者mysql数据库中 本文只做爬取网页的练习 代码如下: import requests from lxml import etree import ...

  7. Python3爬取今日头条文章视频数据,完美解决as、cp、_signature的加密方法(2020-6-29版)

    前言 在这里我就不再一一介绍每个步骤的具体操作了,因为在爬取老版今日头条数据的时候都已经讲的非常清楚了,所以在这里我只会在重点上讲述这个是这么实现的,如果想要看具体步骤请先去看我今日头条的文章内容,里 ...

  8. python之利用requests库爬取西刺代理,并检验IP的活性

    用爬虫爬取某个网站的数据时,如果用一个IP频繁的向该网站请求大量数据,那么你的ip就可能会被该网站拉入黑名单,导致你不能访问该网站,这个时候就需要用到IP动态代理,即让爬虫爬取一定数据后更换IP来继续 ...

  9. python爬虫实战:爬取西刺代理网站,获取免费的代理IP

    爬取的网站链接:西刺网站 import requests import chardet import random import time from bs4 import BeautifulSoup ...

最新文章

  1. 剑指offer-调整数组顺序使奇数位于偶数前面13
  2. 成功解决pml.Simple derived_col_names[int(obj[‘split_feature‘])],\ IndexError: list index out of range
  3. spring rmi_Spring集成–使用RMI通道适配器
  4. 实战 RocketMQ 流量削峰,怎么能错过这一篇!
  5. MakersPlace将启动1美元特价的Beeple限量NFT抽奖活动
  6. 配置 AEM CQ6 (author + publish + apache dispatcher + ubuntu )
  7. SpringMVC 环境搭建
  8. stm32f103振镜_基于振镜扫描的生物芯片荧光信号光强校正
  9. Win10文件夹大小分析、磁盘空间清理工具
  10. 安卓旅途之——开发数独(总结)
  11. Unity加载模块深度解析(网格篇)
  12. 西门子的十一位CEO
  13. php怎么用origin打开,[转载]origin 使用技巧 (4)
  14. element-ui使用踩坑记录 2022/8/24
  15. 幻灯播放主题图片插件thread_slide_for_discuz x2 适合户外 摄影类论坛
  16. 自己开发iOS版按键精灵--TTouch
  17. 公共数据库介绍~google公共数据
  18. 简单的理解unicode和utf-8的关系
  19. win7计算机里不显示摄像头,win7没有摄像头图标怎么办|win7显示摄像头图标的方法...
  20. 使用无监督算法检测DGA域名(一)

热门文章

  1. 学python可以做什么产品-学了 Python,能用来做什么?实际应用场景有哪些??...
  2. python能用来做什么有意思的事情-用 Python 自动化办公能做到哪些有趣或有用的事情?...
  3. python中实例方法与实例属性-Python中的类属性和实例属性以及静态方法和类方法...
  4. python循环语句-python----循环语句及循环控制语句
  5. 零基础学python免费网课-零基础学Python量化投资,超值线上课程反复回看
  6. python基础教程书-7本Python必读的入门书籍
  7. python常用模块大全总结-常用python模块
  8. 在哪里能收到python实例代码-Python分类测试代码实例汇总
  9. 为什么叫python编程-python为什么叫爬虫
  10. 用python开发的网站多吗-django可以开发大型网站吗