快速带你Python构建专属IP代理池,让IP被封成为不可能

文章目录

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

许多python爬虫爱好者在爬虫爬取过程中或多或少都有被爬取网址封禁IP的时候,博主本人也是深受其害,为此才有了这篇博文的诞生,让更多爬虫爱好者不再受害。希望此教程对你们有所帮助,那我这篇博文也就有意义了。

一、网页查看

本次构造IP代理池,我们的目标是快代理

快代理首页,虽然有着免费代理,但都是HTTP类型的,而在开放代理中不仅有着HTTP还有HTTPS类型的免费代理在这里插入图片描述
在这里插入图片描述
打开控制台查看数据位置
在这里插入图片描述
可以发现IP代理数据不是动态加载的,这样就好办了,请看下面的代码分析
在这里插入图片描述
多页爬取,大家都是清华北大的下图应该看的懂吧。ο(=•ω<=)ρ⌒☆
在这里插入图片描述


二、完整代码及代码分析

import requests
from bs4 import BeautifulSoup
import time

#列表(最后的ip代理数据保存再列表中)
proxies_list = []

#爬取
def download(response):
	#引入全局变量
    global proxies_list
    
    #使用bs4的lxml解析
    data_list = BeautifulSoup(response.text, "lxml")
    
    #根据select选择器定位,可以参考图1
    tr_list = data_list.select("#freelist > table > tbody")
    tr_list = BeautifulSoup(str(tr_list), "lxml")
	
	#遍历得到里面的每个tr标签再解析取值
    for tr in tr_list.find_all("tr"):
    	#字典,用来存储ip代理数据
        proxies_dict = {}
        td = BeautifulSoup(str(tr), "lxml")
        
        #有的代理类型只有http,但有的既有http又有https,而且有https的一定支持http
        #所以以下类型如果只支持http就用http表示,两种都支持就用https表示
        try:
        	#根据","分割取https,如果有则取到,没有抛异常,就不分割即为http类型
            http_type = td.find(attrs={"data-title": "类型"}).text.split(",")[1].strip()
        except:
            http_type = td.find(attrs={"data-title": "类型"}).text
        #参考图2
        #根据自定义参数定位,取值
        ip = td.find(attrs={"data-title": "IP"}).text
        port = td.find(attrs={"data-title": "PORT"}).text
        # print(http_type, ip, port)
        #添加到字典
        proxies_dict[http_type] = ip + ":" + port
        #添加到列表
        proxies_list.append(proxies_dict)



#开始
if __name__ == "__main__":
	#进行多页爬取	
    for i in range(3):
        url = "https://www.kuaidaili.com/ops/proxylist/" + str(i+1)
        #发送get请求
        response = requests.get(url=url)
        download(response)
        
    print(proxies_list)
    #ip代理个数
    print(len(proxies_list))


三、图片辅助分析

图1
在这里插入图片描述

图2
在这里插入图片描述

图3


四、运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值