zoukankan      html  css  js  c++  java
  • Python urllib2 模块

    urllib2.urlopen(url, data=None, timeout=<object object>) :用于打开一个URL,URL可以是一个字符串也可以是一个请求对象,data 用于指定要发送到服务器的额外数据的字符串,timeout 用于设置打开URL的超时时间

    In [1]: import urllib2
    In [2]: request = urllib2.urlopen('http://www.baidu.com/')    # 结果返回一个文件对象
    In [3]: data = request.read()    # 使用文件对象的read()方法可以读取数据,也可以readline()、readlines()等方法
    In [1]: import urllib2
    In [2]: url = 'http://www.baidu.com/'
    In [3]: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}
    In [4]: request = urllib2.Request(url, headers=headers)    # 也可以先构造一个请求对象
    In [5]: response = urllib2.urlopen(request)    # 然后使用 urlopen() 来打开这个请求对象
    In [6]: data = response.read()


    urllib2.Request(url, data, headers) :用于构造一个请求对象,然后用 urllib2.urlopen() 来打开这个请求对象,data 用于指定要发送到服务器的额外数据的字符串,headers 用于指定请求头,请求头可以在浏览器按 F12 查看

    In [1]: import urllib2
    In [2]: url = 'http://www.baidu.com/'    # User-Agent 表示使用哪个浏览器打开
    In [3]: headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.96 Safari/537.36'}
    In [4]: request = urllib2.Request(url, headers=headers)    
    In [5]: response = urllib2.urlopen(request)
    In [6]: data = response.read()


    urllib2.URLError 
    :这是一个异常类,如果我们使用 urlopen() 打开一个URL,打开失败就会抛出这个异常,失败的原因主要有:没有网络连接 、服务器连接失败 、找不到指定的服务器
    urllib2.HTTPError :这是 URLError 异常类的子类,在你利用 urlopen() 方法发送一个请求时,服务器会响应并返回请求的内容,使用 urllib2.HTTPError 可以获取返回的请求头中的 HTTP 状态码
    urllib2.HTTPError 这个类包含了 code 属性,urllib2.URLError 这个类包含了 code 和 reason 属性,code 即 HTTP 状态码,如 200,403,502 等,reason 用于描述失败的原因,一般我们只使用 urllib2.URLError 这个异常类

    import urllib2
    
    try:
        urllib2.urlopen('http://blog.csdn.net/cqcrek')
    except urllib2.URLError, e:
        if hasattr(e, 'code'):
            print '连接服务器失败,错误代码:%s' % e.code
        if hasattr(e, 'reason'):
            print '连接服务器失败,失败原因:%s' % e.reason
        else:
            print '连接服务器失败,失败原因:%s' % e
    else:
        print 'OK'

        

  • 相关阅读:
    JAVA SE 基础复习-虚拟机
    不错的博客
    如何分析问题
    由Contains开始的
    相关有用链接
    C++语法一二
    关于论文的些许想法
    C++中一些容易迷惑的语法点总结
    android中各种组件的生命周期问题
    android开源框架thinkinandroid相关研究
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10372346.html
Copyright © 2011-2022 走看看