最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python如何安装urllib

    正文概述    2020-10-27   331

    python如何安装urllib

    urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urllib。基本上涵盖了基础的网络请求功能。

    该库有四个模块,分别是urllib.request,urllib.error,urllib.parse,urllib.robotparser。前三个比较常用。

    urllib.request 发送http请求

    urllib.error 处理请求过程中,出现的异常。

    urllib.parse 解析url

    urllib.robotparser 解析robots.txt 文件

    二、请求方式

    1、get请求

    #第一步导包
    from  urllib import request
    
    url = "http://httpbin.org"
    #第二步请求
    response = request.urlopen(url,timeout=1)
    #第三步打印返回数据
    print(response.read().decode())

    访问的结果会是一个http.client.HTTPResponse对象,使用此对象的read()方法,则可以获取访问网页获得的数据。但是要注意的是,获得的数据会是bytes的二进制格式,所以需要decode()一下,转换成字符串格式。

    urllib发送请求是用urlopen()

    源码如下

    urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

    第一个参数 String 类型的地址

    data 是 bytes 类型的内容,可通过 bytes()函数或者encode()转为化字节流。它也是可选参数。使用 data 参数,请求方式变成以 POST 方式提交表单。使用标准格式是application/x-www-form-urlencoded

    timeout 参数是用于设置请求超时时间。单位是秒。

    cafile和capath代表 CA 证书和 CA 证书的路径。如果使用HTTPS则需要用到。

    context参数必须是ssl.SSLContext类型,用来指定SSL设置

    cadefault参数已经被弃用,可以不用管了。

    该方法也可以单独传入urllib.request.Request对象

    该函数返回结果是一个http.client.HTTPResponse对象。

    http.client.HTTPResponse对象。它具有msg、version、status、reason、debuglevel、closed等属性以及read()、readinto()、getheader(name)、getheaders()、fileno()等函数。

    # print(response.msg) # OK
    # print(response.version)  #11
    # print(response.status) #200
    # print(response.reason) #OK
    # print(response.getcode()) #200
    # print(response.getheaders) # <bound method HTTPResponse.getheaders of <http.client.HTTPResponse 
    object at 0x0000023C554DB588>>
    # print(response.geturl()) #http://httpbin.org/headers

    2、post请求

    from  urllib import request,parse
    
    url = "http://httpbin.org"data = {    'name':'xfy'}# data = bytes(parse.urlencode(data),encoding='utf8');
    data = parse.urlencode(data).encode()
    response = request.urlopen(url+"/post",data=data)
    print(response.status) #200print(response.read().decode())

    data 需要被转码成字节流。而data 是一个字典。我们需要使用 parse.urlencode() 将字典转化为字符串。再使用 bytes()或者encode() 转为字节流。最后使用 urlopen() 发起请求,请求是模拟用 POST 方式提交表单数据。

    这里说一下http://httpbin.org,这个url专门是用来爬虫请求测试的。

    http://httpbin.org/get   测试get请求
    http://httpbin.org/post  测试post请求
    http://httpbin.org/headers  测试获得headers  
    http://httpbin.org/ip  测试获得ip
    http://httpbin.org/cookies  测试获得cookies

    三、创建 Request 对象

    urlopen()还可以传一个Request对象

    req = request.Request(url+"/get")
    response = request.urlopen(req)
    print(response.read().decode())

    urllib/request 包下有一个类Request

    其初始化方法如下

    def __init__(self, url, data=None, headers={},
                     origin_req_host=None, unverifiable=False,
                     method=None):

    url 参数是请求链接,这个是必传参数,其他的都是可选参数。

    data 参数跟 urlopen() 中的 data 参数用法相同。

    headers 参数是指定发起的 HTTP 请求的头部信息。headers 是一个字典。它除了在 Request 中添加,还可以通过调用 Reques t实例的 add_header() 方法来添加请求头。

    origin_req_host 参数指的是请求方的 host 名称或者 IP 地址。

    unverifiable 参数表示这个请求是否是无法验证的,默认值是False。意思就是说用户没有足够权限来选择接收这个请求的结果。例如我们请求一个HTML文档中的图片,但是我们没有自动抓取图像的权限,我们就要将 unverifiable 的值设置成 True。

    method 参数指的是发起的 HTTP 请求的方式,有 GET、POST、DELETE、PUT等。

    更多学习内容,请点击Python学习网。


    起源地下载网 » python如何安装urllib

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元