zoukankan      html  css  js  c++  java
  • 17.3.12--urllib2模块

    1---urllib2是非常强大的Python网络资源访问模块,它的功能和urllib模块相似

          python标准库中的urllib2模块可以说是urlib模块的一个升级的复杂版,不需要另外下载,

                                                   比如访问的网络资源需要http验证,

                     需要cookie信息

                     模仿普通浏览器一样去访问网络,网页资源

                这个时候用urllib2

    2---urllib2模块介绍

        1)设置timeout超时设置:

            import urllib2

            test=urllib2.urlopen('http://www.iplaypy.com/',timeout=15)

                                                  #2个参数,一个是url地址,一个是超时的时候,这次的测试设定值是15

        2)在访问的时候加入Header头部信息

            header={“User-Agent”:“Mozilla-firefox24.0”}  #字典类型

            urllib2.urlopen(url,header)

                               像上面这样的操作,就可以加上Header头部信息,用来模仿浏览器行为,应对一些禁止爬虫的网络资                         源,非常实用

        3)用urllib2得到http网页状态码

            import urllib2

            test=urllib2.urlopen("http://baidu.com/”)

            test.code

                                   这样就可以访问百度的网页状态码,200证明能访问,得到网页内容

        4)使用urllib2对Cookie进行处理

            import urllib2

            import cookielib

            cookie=cookielib.CookieJar()  #后面函数方法要注意C和J是大写的

            opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

            response=opener.open('http://www.baidu.com')

            for item in cookie:

              if item.name=="some——cookie_item_name"

                print item.value

        5)urlopen()----是处理的入口函数,获取OpenerDiretor对象,调用Opener.open()

                         默认的OpenDiretor对象保存在变量_open中,采用Singleton模式

        build_opener()----

               install_opener()---将OpenerDirector对象保存在变量_opener中,作为默认opener使用

               class Openerdirector

        class Resquest---作为一个信息对象,保存和url相关的参数,包括headers,data,proxy等,用于url参数传递

               class HTTPHandler---类继承者关系:BaseHandler-->AbstracHTTPHandler-->HTTPHandler

                                                   调用httplib.HTTPConnection完成HTTp的处理

  • 相关阅读:
    Centos 7.6搭建Skywalking6.5+es6.2.4
    Skywalking入门介绍,skywalking6.5.0 +mysql (windows) 搭建
    使用springcloud gateway搭建网关(分流,限流,熔断)
    Elastalert
    Docker 部署ELK之Sentinl日志报警
    Docker 部署ELK
    基于sentry的前端错误监控日志系统(部署sentry服务器/前端项目部署)-让前端最快的定位到生产问题
    sentry之二:sentry配置钉钉和email
    sentry之一:sentry安装
    全链路追踪技术选型:pinpoint vs skywalking
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/6538583.html
Copyright © 2011-2022 走看看