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


相关推荐

  • 阿里云邮箱POP3、SMTP设置教程

    阿里云邮箱POP3、SMTP设置教程

    2021年9月21日
    270
  • SQL删除多表关联数据的三种方法

    SQL删除多表关联数据的三种方法1.级联删除 createtablea(id varchar(20)primarykey,passwordvarchar(20)notnull)createtableb(idintidentity(1,1) primarykey,namevarchar(50)notnull,userIdvarchar(20),fo

    2022年7月17日
    72
  • Java内存管理-你真的理解Java中的数据类型吗(十)

    勿在流沙筑高台,出来混迟早要还的。做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!作为Java程序员,Java 的数据类型这个是一定要知道的! 但是不管是那种数据类型最终存储都要到内存中,本文由浅入深对数据类型进行介绍和讲解,相信读完本文你一定会有收获的,会对Java数据类型有更深的了解和认识!本文地图一、什么是位、字节、字符、字符集位(bit):计算机…

    2022年2月28日
    193
  • Qualcomm QXDM工具简介和log抓取[通俗易懂]

    Qualcomm QXDM工具简介和log抓取[通俗易懂]高通工具简介QXDM简介QXDM安装QXDM激活QXDM使用AT打开Diagnostic口QXDM配置1MessageViewConfigurationMessagePacketsLogPacketsLogPacketsOTAEventReportsStrings2…

    2022年9月27日
    2
  • KLayout教程(五)Pcells(parametric cells)可以画圆

    KLayout教程(五)Pcells(parametric cells)可以画圆1、instance里面,有一个basiclayoutobjects,然后点击下面cell里的cicle就可以画圆,然后旁边pcell可以选圆的半径,图层,由多少点构成(KLayout里没有真正的圆,都是由多边形构成的)。2、其他的,还有个功能,比如你创建好后一个多边形,然后选中后edit-selection-converttoPcells,我这个地方选的round-polygon(其他的可以自己试一下)3、光刻的时候想添加字体的话,就点击上方的按钮text,然后输上自己想要显示的话,然后.

    2025年6月28日
    0
  • python一维插值scipy.interpolate.interp1d

    python一维插值scipy.interpolate.interp1dSciPy的interpolate模块提供了许多对数据进行插值运算的函数,范围涵盖简单的一维插值到复杂多维插值求解。当样本数据变化归因于一个独立的变量时,就使用一维插值;反之样本数据归因于多个独立变量时,使用多维插值。classscipy.interpolate.interp1d(x,y,kind=’linear’,axis=-1,copy=True,bounds_…

    2022年6月8日
    99

发表回复

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

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