自己搞一个免费的IP代理池_遗憾止于初衷的博客-程序员信息网

技术标签: python  

这几天在家里面一直在做一个爬虫,前天突然发现ip由于过于频繁的访问被禁用了,所以在这里搞一个免费的ip代理池供大家使用,当然了,我们就不爬网站了,有现成的网站,要自己想爬也可以,我们用到的网址是

IP列表
https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list

还有用到一个可以获取访问ip的网址,

验证ip’

http://icanhazip.com/

话不多说,我们直接上代码,

import telnetlib
import requests
import random
import json
proxy_url = 'https://raw.githubusercontent.com/fate0/proxylist/master/proxy.list'
def verify(ip,port,type):
    '''
    验证后写入文件中
    :param ip:
    :param port:
    :param type:
    :return:
    '''
    proxies = {
    }
    try:
       '''
       验证方式,这里我看了网上都是用的都是用的都是telnet或者是用的我上面说的那个网址,
       返回当前的访问ip,差不多都是这样的,所以我就写了这两个验证的方法,后话啊,当然这
       是后话,我感觉应该把这两个方法都用上去,那样ip质量会不会比较好
       '''
        verify2(ip,port,type)
    except:
        print('unconnected')
    else:
        #print('connected successfully')
        # proxyList.append((ip + ':' + str(port),type))
        proxies['type'] = type
        proxies['host'] = ip
        proxies['port'] = port
        proxiesJson = json.dumps(proxies)
        with open('proxy_ip.json','a+') as f:
            f.write(proxiesJson + '\n')
        print("已写入:%s" % proxies)
def verify1(ip,port):
    '''
    验证IP是否可用
    :param ip:
    :param port:
    :return:
    '''
    #这里写的时间越小,我们得到的ip越少,质量可能会高一点
    telnet = telnetlib.Telnet(ip, port=port, timeout=3)
def verify2(ip,port,type):
    '''
    验证ip是否可用
    :param ip:
    :param port:
    :param type:
    :return:
    '''
    requests.adapters.DEFAULT_RETRIES = 3
    thisProxy = str(type)+'://' + str(ip)+':'+str(port)
    #这里时间写的越小我们的所获取的ip越少,当然了他的质量也就越高
    res = requests.get(url="http://icanhazip.com/", timeout=8, proxies={
    type: thisProxy})
    
    proxyIP = res.text.replace("\n", "")
    if (proxyIP == ip):
        print('ip:'+ip+'有效')
    else:
        raise Exception('代理IP无效')
def getProxy(proxy_url):
    '''
    获取ip,port ,type
    :param proxy_url:
    :return:
    '''
    response = requests.get(proxy_url)
    #拆分开返回的数据
    proxies_list = response.text.split('\n')
    print(len(proxies_list))
    print(proxies_list)
    for i in range(len(proxies_list)):
        print(str(i)+proxies_list[i])
        proxy_json = json.loads(proxies_list[i])
        host = proxy_json['host']
        port = proxy_json['port']
        type = proxy_json['type']
        verify(host,port,type)


if __name__ == '__main__':
    getProxy(proxy_url)

写作不易,希望大家给点个赞。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/baidu_40492134/article/details/104414917

智能推荐

Unity3D —— protobuf网络框架_EasonEasonEasonEason的博客-程序员信息网

前言:        protobuf是google的一个开源项目,主要的用途是:1.数据存储(序列化和反序列化),这个功能类似xml和json等;2.制作网络通信协议;一、资源下载:1.github源码地址:https://github.com/mgravell/protobuf-net2.google项目源码下载地址(访问需翻墙):h

视频区域裁剪python_录制的视频,使用python opencv去截取帧数(自定义间隔帧截取)同时可裁剪图像尺寸..._weixin_39793434的博客-程序员信息网

coding: utf-8import cv2 as cvimport os2.读取视频文件夹filepath = './Input_video' # 需要读取的视频的路径pathDir = os.listdir(filepath) # 获取文件夹中文件名称3.截视频帧数for allDir in pathDir: # 逐个读取视频文件a = 1 # 图...

python动画演示算法_10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径..._weixin_39630771的博客-程序员信息网

@本文来源于公众号:csdn2299,喜欢可以关注公众号 程序员学府深度优先算法(DFS 算法)是什么?寻找起始节点与目标节点之间路径的算法,常用于搜索逃出迷宫的路径。主要思想是,从入口开始,依次搜寻周围可能的节点坐标,但不会重复经过同一个节点,且不能通过障碍节点。如果走到某个节点发现无路可走,那么就会回退到上一个节点,重新选择其他路径。直到找到出口,或者退到起点再也无路可走,游戏结束。当然,深度...

HOG方向梯度直方图_guifeng93的博客-程序员信息网

作者:Slyne_D链接:https://www.jianshu.com/p/395f0582c5f7來源:简书 好久没写东西了,由于楼主换了个城市工作,发现工作量蹭蹭的上来了,周末又喜欢出去觅食,导致没学习很久,今天准备水一篇来翻译一下如何理解HOG(Histogram Of Gradient, 方向梯度直方图)。本文主要翻译了这篇文章,也是我非常喜欢的博主之一(奈何他开的课程错过了...

有趣!好玩!Ubuntu下的小命令_茂茂是个菜鸟的博客-程序员信息网

Ubuntu下有趣好玩的命令带你装逼带你飞,带你冲进垃圾堆,哈哈 开个玩笑,这次为各位整理的几个Ubuntu下好玩的小命令,接下来让我们来看一下,冲!冲!冲!一、黑客帝国——流星雨没用安装过的小伙伴需要安装哦~安装sudo apt-get install cmatrix运行cmatrix然后我们来看看效果想要关闭按ctrl+c二、高大上仪表盘——假装自己很nb安装sudo apt-get install hollywood运行hollywood效果如下:是不是很哇塞~

CSRF跨站请求伪造_虚无-缥缈的博客-程序员信息网_csrf跨站请求伪造

一、CSRF漏洞原理我们不能挟持用户,但是我们可以挟持用户的浏览器发送任意的请求。某些html标签是可以发送HTTP GET类型的请求的。例如<img>标签:<img src="http://www.baidu.com" />浏览器渲染img标签的时候,并不知道img标签中src属性的值,到底是不是一个图片,浏览器做的就是根据src中的链接,发起一个HTTP GET请求,并且携带上当前浏览器在目标网站上的凭证,也就是cookies,获取返回结果以图片的形式渲染。根据这个特性,可

随便推点

远程桌面协议 (RDP)_jinru2560的博客-程序员信息网_rdp协议

     远程序桌面登录的.NET开发,可以使用MSTSCLib.dll和MsTscAxWrapper.dll两个转换过的动态库,而无需使用WINDOWS自带的OCX,因为使用OCX开发可以会遇到其它问题。     主要代码:public AxMSTSCLib.AxMsRdpClient rdpClient;rdpClient = new AxMSTSCLib.AxMsRdpCli

deepin 安装微信与QQ_weixin_30571465的博客-程序员信息网

安装QQsudo apt-get install deepin.com.qq.im安装微信sudo apt-get install deepin.com.wechat附录其他安装包https://aur.archlinux.org/packages/转载于:https://www.cnblogs.com/navysummer/p/8976366.html...

cesium的学习_捡黄金的少年的博客-程序员信息网_cesium学习

因为项目要使用cesium做三维可视化所以,学习了两个多星期cesium,现在将学习过程分享出来,供大家学习,也方便自己以后查看1、下载cesiumcesium源码包下载vue配置cesium教程Cesium中文文档2、配置cesium其实最主要配置widgets.css和Cesium.js的包 <script src="Cesium-1.74/Build/Cesium/Cesium.js"></script> <style> @i

如何判断器件的晶振有没有起振?如何通过示波器查看晶振的波形(用示波器测量晶振是否起振了)或者可以测量晶振的电压????_学无止境2022的博客-程序员信息网_示波器测试晶振是否起振

w5500(SPI转以太网)和MCP2515(SPI转CAN)都自带晶振应该是(外接晶体+芯片内部的谐振电路)因为晶体需要连接谐振电路才能起振单片机的时钟就是MCU内部的谐振电路外加晶体提供的。STM32外部晶振不起振https://blog.csdn.net/qq_33559992/article/details/83009134?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162885171416780366558740%25

X86和X64的区别_一棹春风一叶舟的博客-程序员信息网_x86架构和x64

一、简介X86:32位系统,是指操作系统一次性可以处理的位数是32。x86指的是一种cpu的架构,x86架构的特点是cpu的寄存器是32位的。X64:也可写作X86-64,64位系统,指操作系统一次性可以处理的位数是64。x64架构的特点是cpu的寄存器是64位的。二、数据类型长度不同位数OS下的变量类型的长度如下:32位平台char1个字节8位...

conda安装pytorch遇到的坑_孤月独明QAQ的博客-程序员信息网_conda 安装pytorch

**一、根据cuda选择自己合适的pytorch版本**https://pytorch.org/get-started/locally/conda install pytorch torchvision cudatoolkit=10.2 -c pytorch二、配置清华镜像conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channel

推荐文章

热门文章

相关标签