IP代理池的使用

IP代理池的使用参考书籍:python3网络爬虫开发与实战作者个人博客:https://cuiqingcai.com/下载IP代理池的程序,其作者放在了GitHub:https://github.com/Python3WebSpider/ProxyPool需要的工具:pycharm、各种库、python37、redis安装、redis可视化工具(在参考书籍作者博客中都有安装方法)1、下载IP…

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

参考书籍:python3网络爬虫开发与实战     作者个人博客https://cuiqingcai.com/

下载IP代理池的程序,其作者放在了GitHubhttps://github.com/Python3WebSpider/ProxyPool

需要的工具:pycharm、各种库、python37、redis安装、redis可视化工具(在参考书籍作者博客中都有安装方法)

1、下载IP代理池的安装包,压缩用pycharm打开点击File->Open->选择你刚下载的代理池的文件夹->New Window,等待片刻

IP代理池的使用IP代理池的使用

2、点击pycharm里的命令行(Terminal),输入python run.py,运行代码,可以看到正在爬取ip

IP代理池的使用

IP代理池的使用

3、打开redis数据库可视化工具,能看到爬取的ip存在数据库中,在浏览器中输入http://127.0.0.1:5555/random,可以打印出redis中的其中一个可用的IP

IP代理池的使用

IP代理池的使用IP代理池的使用

4、在pycharm中新创建一个.py文件,请求该http://127.0.0.1:5555/random,在下面图中可以看到能打印出IP地址

IP代理池的使用

5、现在我们用代理池的IP来请求我们需要的网址,运行过后可以看到IP地址是你数据库中的IP地址,说明代理成功

import requests

PROXY_POOL_URL = 'http://localhost:5555/random'

def get_proxy():
    try:
        response = requests.get(PROXY_POOL_URL)
        if response.status_code == 200:
            return response.text
    except ConnectionError:
        return None

def get():
    proxy = get_proxy()
    proxies = {
        'http': 'http://' + proxy,
        'https': 'https://' + proxy
    }

    try:
        response = requests.get('http://httpbin.org/get', proxies=proxies)
        print(response.text)
    except requests.exceptions.ConnectionError as e:
        print('Error', e.args)

if __name__ == '__main__':
    get()

IP代理池的使用

注意点:请求redis中的IP的时候,IP代理池不能关闭,如果关闭,则不会获取到redis中的IP

 

 

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

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

(0)
上一篇 2022年5月9日 下午11:40
下一篇 2022年5月9日 下午11:40


相关推荐

  • 局域网和广域网_简单的局域网怎么搭建

    局域网和广域网_简单的局域网怎么搭建局域网1、什么是局域网:局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成。也称为内网。2、局域网怎么实现:以太网是全球使用最广泛的局域网技术,有线局域网通常通过双绞线(一般直接说网线)连接;无线局域网现在一般通过交换机、路由器实现。3、局域网可以干什么:局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。广域网1、什么是广域网:将各局域网或城域网连接起来便是广域网,也称为外网或公网。2、广域网怎么实现:现在的传

    2022年10月19日
    4
  • next()和nextLine()的区别详解

    next()和nextLine()的区别详解//next()和nextLine()的区别详解/*next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉;只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符;所以next()方法不能得到带空格的字符串。 *//*nextLine()方法字

    2022年5月29日
    36
  • 几何平均详解,及其与算术平均、调和平均、均方根的关系

    几何平均详解,及其与算术平均、调和平均、均方根的关系3 2 几何平均数适用于求连乘样本的均值 算术平均数适用于求连加样本的均值例 假定某地储蓄年利率 按复利计算 5 持续 1 5 年 3 持续 2 5 年 2 2 持续 1 年 求此 5 年内该地平均储蓄年利率 r1 r2 r3 1 05 1 03 1 022 各年利率 n1 n2 n3 1 5 2 5 1 各年利率持续时间 G r1n1 r2n2 r3n3 1 n1 n2 n3 r avg G 1print 用几何级数计算平均年利

    2026年3月17日
    2
  • hashmap为什么线程不安全面试_hashtable是线程安全的吗

    hashmap为什么线程不安全面试_hashtable是线程安全的吗HashMap为什么线程不安全?文章目录HashMap为什么线程不安全?前言项目环境1.put方法中的++modCount问题2.扩容期间取值不准确3.同时put碰撞导致数据丢失4.可见性问题5.扩容头插法可能导致的循环链表问题6.总结7.参考前言本文从以下几个方面来讨论HashMap为什么是线程不安全的put方法中的modCount++问题扩容期间取值不准确同时put碰撞导致数据丢失可见性问题扩容头插法可能导致的循环链表问题(jdk1.8以前版本)jd

    2022年10月11日
    4
  • 2021计算机三级数据库大题总结

    2021计算机三级数据库大题总结第一套大题为了方便之后的大题都放在这里38.设计ER图,并把ER图转换为关系模式,并指出主码。相关参考资料:(一)什么是ER图?(1)概念ER图:实体关系图,简记E-R图,是指以实体、关系、属性三个基本概念概括数据的基本结构,从而描述静态数据结构的概念模式(2)要素3要素:实体、属性和关系(3)表示 实体型:用矩形表示,矩形框内写明实体名;  属性:用椭圆形或圆角矩形表示,与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;  联系:用菱形表示,菱形框内写明

    2022年6月22日
    41
  • java 反编译器_JAVA编译器

    java 反编译器_JAVA编译器xjad反编译工具下载使用反编译时把class文件直接拖拽至工具内即可,如果反编译结果不对时把class文件重新去拿原始的不要编辑打开,或者放在一个文件夹内在试。反编译后的代码没有注释、注解等,反正能用得细心看看调整。点击下载工具http://a.xzfile.com/down2/XJadfanbinayi_downcc.zip…

    2022年8月19日
    10

发表回复

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

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