zoukankan      html  css  js  c++  java
  • Python 抓取图片

    #coding:utf-8
    from bs4 import BeautifulSoup
    import requests
    import urllib


    user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'
    headers ={'User-Agent':user_agent}


    def Schedule(blocknum,blocksize,totalsize):

    #blocknum:已经下载的数据块
    #blocksize:数据块的大小
    #totalsize:远程文件的大小

    per = 100.0*blocknum*blocksize/totalsize

    if per > 100:

    per = 100

    print '当前下载进度:%d' %per


    r = requests.get('http://www.ivsky.com/tupian/ziranfengguang/',headers=headers)

    soup = BeautifulSoup(r.text, 'html.parser', from_encoding='utf-8')

    i=0

    for img in soup.find_all('img'):

    if img.has_attr('src')!=None:

    url = img.get('src')

    urllib.urlretrieve(url,'./images/img'+str(i)+'.jpg',Schedule)
    i+=1

    urlretrieve(url,filename=None,reporthook=None,data=None)

    参数filename 指定了存储的本地路径(如果参数未指定,urllib会生成一个临时文件保存数据)

    参数reporthook是一个回调函数。当连接上服务器以及相应的数据块传输完毕时会触发该回调函数,我们可以利用这个回调函数来显示当前的下载速度

  • 相关阅读:
    CSS3实现小黄人动画
    CSS3实现时间轴效果
    CSS3实现8种Loading效果【二】
    Delphi面向对象的编程思想
    delphi 格式转换
    FindWindow和FindWindowEx函数使用
    delphi TStringList 用法详解
    ExtractFileDir 与 ExtractFilePath 的区别
    C++模板与群体数据
    C++多态性
  • 原文地址:https://www.cnblogs.com/paulversion/p/8337272.html
Copyright © 2011-2022 走看看