美文网首页编程地带
urllib判断获取数据大小

urllib判断获取数据大小

作者: MA木易YA | 来源:发表于2019-01-17 18:24 被阅读0次

urllib包含四个模块:

  1. urllib.request——请求处理
  2. urllib.error——异常处理
  3. urllib.parse——URL处理
  4. urllib.robotparse——用来解析页面的robots.txt文件

    我们这里主要讲一下urllib的request模块里面对网页头信息的处理,我么一般会用urllib.request.urlopen()来对网页请求进行获取,它会返回一个http.client.HTTPResponse类型的对象,并对应有如下方法:
read(),readinto(),getheader(name),getheaders(),fileno()等函数和msg,version、status,reason,debuglevel,closed等属性。
    我们这里可以调用里面的getheader()对要下载处理的文件的length进行判断——getheader('Content-Length'),继而避免无法下载时打开无用文件,这里也可以从文件角度出发处理。

    类似我们之前QQ音乐爬虫中的处理:

with open(filename, 'wb') as f:
        f.write(res.raw.read())
    if(urllib.request.urlopen(url).getheader('Content-Length') > 0):
        print("成功下载歌曲:{}".format(name.replace("?", "").replace("/", "_").replace("\\", "_").replace("\"", "")))
        # size = urllib.request.urlopen(url).getheader('Content-Length')
        # print(size)
    else:
        print("下载失败")
        os.remove(filename)

相关文章

网友评论

    本文标题:urllib判断获取数据大小

    本文链接:https://www.haomeiwen.com/subject/mvxwdqtx.html