zoukankan      html  css  js  c++  java
  • python网络爬虫(8)多媒体文件抽取

    目的

    批量下载网页图片

    导入库

    urllib中的request中的urlretrieve方法,可以下载图片

    lxml用于解析网页

    requests用于获取网站信息

    import urllib
    from lxml import etree
    import requests
    

    定义回调函数

    回调函数中,count表示已下载的数据块,size数据块大小,total表示总大小。

    在使用urllib中的request中的urlretrieve方法时,加入的回调函数,会在每次数据块传递完毕时触发,传递参数,可作为下载进度使用。

    def schedule(count,size,total):
        per=100.0*count*size/total
        if per>100:
            per=100
            pass
        print('当前进度:',per)
        pass
    

    获取图片地址

    通过request获取图片地址后,通过xpath语法,对全局查找img标签,获取其src属性。即图片地址

    user_agent='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
    headers={'User-Agent':user_agent}
    r=requests.get('https://www.ivsky.com/tupian/keaiertong_t19487/',headers=headers)
    html=etree.HTML(r.text)
    img_urls=html.xpath('.//img/@src')
    

    下载

    归并地址,命名文件路径和文件名,设定回调函数,完成下载。

    i=0
    for img_url in img_urls:
        urllib.request.urlretrieve('http:'+img_url,'img'+str(i)+'.jpg',schedule)
        i+=1
    print('finish')
    

    另外一组图片下载的完整代码

    import requests
    from lxml import etree
    import urllib
    def schedule(count,size,total):
        per=100.0*count*size/total
        if per>100:
            per=100
            pass
        print('当前进度:',per)
        pass
    user_agent='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
    headers={'User-Agent':user_agent}
    
    for i in range(10):
        r=requests.get('https://www.ivsky.com/tupian/daimaozi_de_meinv_v52173/pic_8185'+str(55+i)+'.html#al_tit',headers=headers)
        html=etree.HTML(r.text)
        url=html.xpath('.//*[@id="imgis"]')[0].xpath('./@src')[0]
        urllib.request.urlretrieve('http:'+url,'img'+str(i)+'.jpg',schedule)#download
    print('finish')   
    

      

  • 相关阅读:
    5.颜色空间转换
    Linux下的解压命令
    4.图像模糊/图像平滑
    insightface作者提供数据训练解读
    MXNetError: [05:53:50] src/operator/nn/./cudnn/cudnn_convolution-inl.h:287
    python中import cv2遇到的错误及安装方法
    docker 安装 mxnet
    95. Unique Binary Search Trees II
    236. Lowest Common Ancestor of a Binary Tree
    124. Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/bai2018/p/10989324.html
Copyright © 2011-2022 走看看