zoukankan      html  css  js  c++  java
  • 【Python3 爬虫】12_代理IP的使用

    我们在爬取页面的时候,如果长时间使用一个网址去爬取某个网站,就会受爬去限制,此时,我们引用了代理IP,IP随时在变化,也就不会被限制了

    一下是国内提供免费代理IP的地址:http://www.xicidaili.com/

    我们打开这个网页后可以看到如下图的代理IP与地址

    image

    上图标记部分就是一个代理IP与其端口号

    那么下面我们就开始使用代理IP来爬取内容

    首先,我们需要自定义opener,为什么要自定义opener呢?那是由于,基本的urlopen方法不支持代理,所以需要支持这个功能:

    • 使用相关的Handler处理器来创建特定的处理器对象
    • 然后通过urllib.request.build_opener方法使用这些处理器对象,创建自定义的opener对象
    • 将自定义的opener对象定义为全局opener(表示如果但凡后边用到urlopen,都将使用这个opener)

    具体实现代码如下:

    import urllib.request
    
    '''
     定义函数
    '''
    def proxy_use(url,tm_ip):
        proxy = urllib.request.ProxyHandler({"http":tm_ip})
        opener = urllib.request.build_opener(proxy,urllib.request.HTTPHandler)
        #定义全局opener
        urllib.request.install_opener(opener)
        #获取网页内容
        content = urllib.request.urlopen(url).read().decode("UTF-8","ignore")
        return content
    
    ip = "14.118.254.1:6666"
    url = "http://www.baidu.com"
    content = proxy_use(url,ip)
    print(len(content))

    运行结果如下:

    image

  • 相关阅读:
    Servlet深层知识
    HTTP协议
    Web开发中的主要概念
    Schema约束
    连接池基础
    Mysql基础3
    JDBC常用接口详解
    Mysql基础2
    Mysql基础1
    使用12c的DBCA创建数据库的时候报错TNS-04404
  • 原文地址:https://www.cnblogs.com/OliverQin/p/8904059.html
Copyright © 2011-2022 走看看