打造自己的ip代理池

打造自己的ip代理池在爬虫时经常需要使用代理,于是我爬取了一个可以免费提供代理的网址,从中获取免费代理,从而打造属于一个自己的代理池。如图所示,这是网址的界面展示,我们需要做的就是需要其中的ip、port列中的数据,获取数据后需要我们拼接成一个完整的IP然后保存即可,代码如下:importrequestsfromlxmlimportetreeimportosurl=’https://www.kuaidaili.com/free/inha/3/’headers=…

大家好,又见面了,我是你们的朋友全栈君。

        在爬虫时经常需要使用代理,于是我爬取了一个可以免费提供代理的网址,从中获取免费代理,从而打造属于一个自己的代理池。

        如图所示,这是网址的界面展示,我们需要做的就是需要其中的ip、port列中的数据,获取数据后需要我们拼接成一个完整的IP然后保存即可,代码如下:

import requests
from lxml import etree
import os

url = 'https://www.kuaidaili.com/free/inha/3/'
headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
    }

content = requests.get(url,headers = headers).text
resonse = etree.HTML(content)
tr_list = resonse.xpath('//div[@id="list"]/table/tbody/tr')
#print(tr_list)
ip_list = []
for tr in tr_list:
    ip = tr.xpath('./td[1]/text()')
    port = tr.xpath('./td[2]/text()')
    proxy_ip = ip[0] +':' +  port[0]
    #print(proxy_ip)
    ip_list.append(proxy_ip)
print(ip_list)

        代码运行后获取到完整的ip数据,接下来我们就可以使用这些代理了,这里需要使用random来随机选择一个ip。

打造自己的ip代理池

 

proxy=random.choice(ip_list) #本地代理
proxies={
    'http':'http://'+proxy,
    'https':'https://'+proxy
}
try:
    response=requests.get('网址',proxies=proxies)
    print(response.text)
except requests.exceptions.ConnectionError as e:
    print('错误:',e.args)

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

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

(0)
上一篇 2022年5月31日 上午10:00
下一篇 2022年5月31日 上午10:00


相关推荐

  • vue关闭eslint语法检查

    vue关闭eslint语法检查启动项目时报错 Youmayusespe Use eslint disable next linetoignore Use eslint disable toignoreallw 解决方法 这样就解决了代码如下 lintOnSave false 关闭 eslint 检查

    2025年9月15日
    7
  • claude code简易教程

    claude code简易教程

    2026年3月16日
    2
  • 私有云的构建组成

    私有云的构建组成无论在公有云还是私有云中 你都无需去考虑底层基础设施 而只需要通过虚拟机和网络处理业务 当然 硬件在供应商那里 如果你正在构建一个私有云 会有很多选项来决定如何去构建它 每个选项都有不同的特性 安全性能和成本 但是在任何一种情况下 你都必须保留大量的安全责任 私有云这些选项与传统的服务器部署模式类似 你可以部署在自己的服务器上 也可以在一个联合本地中心部署 你甚至可以在 托管但是专用 的基础上

    2026年1月19日
    3
  • JAVA反射机制

    JAVA反射机制

    2021年12月8日
    38
  • Python:暴力激活成功教程密码

    Python:暴力激活成功教程密码简介:暴力激活成功教程密码的方式一般是枚举法进行破译尝试,通过一次次不同的输入尝试从而得出最终的密码,所以密码的长度和复杂性就尤为重要。本文仅以范例,警示大家在创建密码的时候,应当尽量选择组合复杂度高的,有一定长度的密码,而不是123456之类的简单密码。激活成功教程的思路:1、获取目标密码长度,一般为4,6,12,15,18位长度。2、获取目标密码组成的范围,一般为数字,小写字母,大写字母,特殊符号3、组装密码,通过itertools模块组装。Python:常见排列组合问题处理4、枚举破译。例如生活中最常见的

    2022年8月22日
    8
  • redisson集成springboot_spring整合redis详解

    redisson集成springboot_spring整合redis详解springboot集成redis非常简单1、引入maven依赖redis包<!–springboot整合redis–><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-redis&lt…

    2026年2月14日
    3

发表回复

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

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