打造自己的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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LAN8720 100M 掉线问题解决

    LAN8720 100M 掉线问题解决最近在做一块板子的时候,使用的phy芯片为LAN8720,在使用的发现老是ping一段时间后自动掉线,从软件问题一直查找,最后发现是LAN8720掉线了,且wang网口绿灯一直常亮,拔线网线也是一样,黄灯不闪烁,且phy发热严重。问题出在本来网口电源是下面这样,但是在焊接时没有找到磁珠,就用0欧电阻代替,结果电源干扰大不稳定,换上磁珠后ping未出现网口掉线现象,发热现象明显减少。…

    2025年7月12日
    2
  • 网络编程_8(项目附件)[通俗易懂]

    网络编程_8(项目附件)[通俗易懂]dict.txtabandonmentn.放弃abbreviationn.缩写abeyancen.缓办,中止abidev.遵守abilityn.能力ableadj.有能力的,能干的abnormaladj.反常的,变态的aboardadv.船(车)上abolishv.废除,取消abolitionn.废除,取消abortionn.流产abortiveadj.无效果的,失败的aboutprep.关于,大约ab

    2022年6月15日
    24
  • OHEM代码梳理[通俗易懂]

    OHEM代码梳理[通俗易懂]传送门:相关OHEM的介绍:检测模型改进—OHEM与Focal-Loss算法总结代码地址:OHEM1.前言有关OHEM的介绍请参考上面给出的链接,这里主要就OHEM是怎么运行的做一些简单的分析,整个OHEM的代码也不是很多,这里将算法的步骤归纳为:1)计算检测器的损失,这部分是使用和最后fc6、fc7预测头一样的共享参数,预测分类与边界框回归的结果,将预测的结果与GT进行比较得…

    2022年5月30日
    33
  • vim 设置搜索高亮_vim取消搜索后高亮持续

    vim 设置搜索高亮_vim取消搜索后高亮持续vim搜索设置高亮linuxvim打开文档搜索字符串时,设置被搜索到字符串高亮显示。有两种方法:1、临时设置:vim打开文档–>命令行形式输入sethlsearch。缺点:关闭文档后,下次打开,又需要重新设置一遍。2、永久设置(推荐):在~/.vimrc中配制vim~/.vimrc在文件中加上sethlsearch 然后保存退出便可。

    2022年9月24日
    3
  • 继电器模块典型电路图

    继电器模块典型电路图当控制端电压为0时,Q1基极电压为(12-0.7=11.3V),改变R1的大小便可改变基极电流,当基极电流足够大时,三极管饱合。为了验证以上的分析,我们搭了一个电路,R1取4.7K,此时基极电流为2.4ma,测得Q1ec电压为0.2V,继电器两端电压为11.8V。注意:R1的取值不能太小,要保证基极电流在安全范围,也不能太大,要保证三极管能完全饱合,这个可以通过电压和电阻算出

    2022年6月24日
    38
  • .NET/C#发起GET和POST请求的几种方法

    .NET/C#发起GET和POST请求的几种方法

    2021年6月13日
    132

发表回复

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

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