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


相关推荐

  • MyEclipse安装SVN插件详解

    MyEclipse安装SVN插件详解今天弄了一下svn插件,确实不太容易,花了一番功夫才搞定,所以,为了以后不为同样的工作花费时间去学重复的事情,我决定记录一下自己安装SVN插件到MyEclipse的过程。也为苦恼在这事上的朋友提供点资源。首先当然是准备工具咯,svn的插件下载地址:http://www.eclipse.org/subversive/downloads.php#latest_releasesvn-con…

    2022年7月20日
    14
  • yuicompressor java_使用yuicompressor-2.4.8.jar压缩js文件报错了(jdk1.8.0_25)「建议收藏」

    yuicompressor java_使用yuicompressor-2.4.8.jar压缩js文件报错了(jdk1.8.0_25)「建议收藏」C:\Users\Administrator>java-jarD:\SoftWare\yui\yuicompressor-2.4.8.jar–charsetUTF-8D:\SoftWare\yui\jquery-180.js-oD:\SoftWare\yui\jquery-180min.jsjava.io.FileNotFoundExc…C:\Users\Administrator&g…

    2022年7月18日
    21
  • fsync mysql_使用O_DIRECT_NO_FSYNC来提升MySQL性能

    fsync mysql_使用O_DIRECT_NO_FSYNC来提升MySQL性能这篇文章很短,但很有价值~MySQL下InnoDB存储引擎有个innodb_flush_method只读参数,用户设置InnoDB的数据和redo日志文件flush行为。definesthemethodusedtoflushdatatoInnoDBdatafilesandlogfiles,whichcanaffectI/Othroughput.这是一个对性能和数据可…

    2022年5月6日
    51
  • silverlight开发_net网站例子

    silverlight开发_net网站例子http://money.finance.sina.com.cn/silverlight/Sina财经Silverlight4.0版http://vip.stock.finance.sina.com.cn/silverpulsehttp://pjd.mscui.net/default.htmhttp://www.silverlight.net 学习网站:http:/

    2022年10月10日
    0
  • Spring Boot 静态资源处理

    Spring Boot 静态资源处理SpringBoot默认为我们提供了静态资源处理,使用WebMvcAutoConfiguration中的配置各种属性。建议大家使用SpringBoot的默认配置方式,如果需要特殊处理的再通过配置进行修改。如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc(@SpringBootApplication注解的程序入口类已经包含@

    2022年5月9日
    43
  • App的宣传方式?

    ##1.线上渠道各大下载市场、应用商店、大平台、下载站的覆盖,线上推广的第一步是要上线,这是最基础的。无需砸钱,只需最大范围的覆盖,具体有:运营商渠道推广、第三方商店、手机厂商商店、积分墙推广、刷榜推广、社交平台推广、广告平台、换量推广等等很多方式。##2.线下推广主要是手机厂商预装、水货刷机、行货店面刷机、地推、线下活动推广等。##3.是线上宣传PR传播、事件营

    2022年4月5日
    39

发表回复

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

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