python : 建立属于自己的爬虫代理ip池

python : 建立属于自己的爬虫代理ip池

python : 免费代理IP获取,验证可用性,建立属于自己的代理ip池
在进行爬虫爬取网站时候总会面临着各种各样的反爬措施,最让人头疼的一般就是封IP地址了,这时候使用代理IP就是一个明智的选择了。
建立属于自己的代理IP池是进行爬虫的一个很高效的办法。
网上存在着大量的免费代理IP网站,以下选取一个较为好用的代理IP网站进行爬取,建立属于自己的代理IP池。(西祠代理快代理等等)

在这里插入图片描述
对于可用的代理获取需要进行多步操作进行提取,毕竟免费给的,怎么可能都是好东西呢?

好东西都是藏在其中的,需要我们细心去提取,提取出来之后就是一个非常美好的事情了。

提取到可用的代理IP之后,就可以建立一个专属于自己的代理IP池了,这样子是不是非常美好呢。有了自己的代理IP池之后,从此爬虫就不再怕被封了。

1 、分析网站,提取高匿代理(只有高匿代理才是真正想要的,如果有需要其他的透明代理,或者普通代理可以自行更换网址) 高匿代理网址:https://www.xicidaili.com/nn

2、提取高匿代理的总页数

res = requests.get(url)
html = parsel.Selector(res.text)
pages = html.xpath('//div[@class="pagination"]/a[10]/text()').extract_first()

3.提取所有的IP地址以及端口号

ips = parsel.Selector(response.text).xpath('//table/tr/td[2]/text()').extract()
posts = parsel.Selector(response.text).xpath('//table/tr/td[3]/text()').extract()

4.对所有的IP地址以及端口号进行检测

for ip,post in zip(ips,posts):
    id = (ip+":"+post).strip()
    try:
        telnetlib.Telnet(ip,post,timeout=3)
        print(id# 查看通过第一次检测的代理IP
    except Exception as e:
        pass

5.检测出的IP地址就是可用度较高的IP地址,如果还是想要最求可用度更高的IP地址,可以对上面检测过的IP地址进行二次检测

try:
    res = requests.get(url,timeout=5,proxies={
   "https":(ip+":"+post).strip()})
    if (res.status_code == 200):
        id_list.append("通过第二次检测:",id)   # 这里获取到的IP地址就是高质量的可用代理IP
        except:
            pass

在这里插入图片描述

6、实现翻页功能,重复运行以上2–5步骤,(使用第一步中提取的总页数进行翻页提取数据)

for i in range(1,int(pages)):
    url = "https://www.xicidaili.com/nn/{}".format(i)
    response = requests.get(url)

由以上步骤便可提取到大量的免费的高匿的代理IP了,一起行动起来吧。

当然这还不是最好的获取代理IP的方法,毕竟这只是一个单线程获取的方法,对代理IP的检测需要的时间较长,把检测代理IP的过程换成多线程检测才是一个更好的获取代理IP的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115147.html原文链接:https://javaforall.net

(0)
上一篇 2021年11月10日 下午6:00
下一篇 2021年11月10日 下午7:00


相关推荐

  • 2、工厂方法模式

    2、工厂方法模式

    2021年9月13日
    56
  • mysql根据经纬度计算距离函数_根据两点经纬度坐标计算距离

    mysql根据经纬度计算距离函数_根据两点经纬度坐标计算距离方式1:st_distance_sphereSELECT*,st_distance_sphere(point(lng,lat),point(116.3424590000,40.0497810000))asjuliFROMtableORDERBYjuliASC没用除以1000,所以是以米为单位方式2:st_distanceSELECT*,(st_distance(point(lng,lat),point(116.3424590000,40.0497810000))*1

    2026年2月26日
    5
  • mybatis的一级缓存和二级缓存

    mybatis的一级缓存和二级缓存一 什么是缓存缓存是存在于内存中的临时数据 使用缓存减少和数据库的交互次数 提高执行效率 1 适用于缓存经常查询并且不经常改变的 数据的正确与否对最终结果影响不大的 2 不适用于缓存经常改变的数据 数据的正确与否对最终结果影响很大的 例如 商品的库存 银行的汇率 股市的牌价 二 mybatis 一级缓存 1 一级缓存简介一级缓存作用域是 sqlsession 级别的 同一个 sqlsession 中执行相同的 sql 查询 相同的 sql 和参数 第一次会去查询数据库并写到缓存中 第

    2026年3月17日
    2
  • Linux下文件系统监控神器Inotify

    Linux下文件系统监控神器Inotify

    2021年9月13日
    49
  • tf版安装_国际贸易术语2010图解

    tf版安装_国际贸易术语2010图解TFS2010安装环境是操作系统为WindowsServer2003SP2(X86),WindowsServer2003R2(X86),WindowsServer2003R2SP2(X86),WindowsServer2008,WindowsServer2008R2。必备组件为:IIS,SQLServer2008,SharePoint(WindowsShare

    2026年2月24日
    3
  • 父母在时 人生尚有来处 父母走后 人生只剩归途_父母去人生只剩归途图片

    父母在时 人生尚有来处 父母走后 人生只剩归途_父母去人生只剩归途图片总是向你索取却不曾说谢谢你,直到长大以后才懂得你不容易。每次离开总是装做轻松的样子,微笑着说回去吧转身泪湿眼底。这是筷子兄弟2011年12月创作的《父亲》中的歌词片段。该曲源自王太利在拍摄老男孩的过程中父亲患病去世,其深刻体会到子欲孝而亲不待的痛苦和遗憾,于是写出这首歌,在缅怀自己父亲的同时,也提醒大家多关爱一生操劳的父亲,不要留有遗憾。目录前言共勉的小故事1.《北京的冬天》2.《墙下》3.《散步》4.《功夫》5.《火车》6.《…

    2022年10月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号