paulversion

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

 

分类:

技术点:

相关文章:

  • 2021-08-07
  • 2021-08-07
  • 2021-11-28
  • 2021-09-05
  • 2021-07-21
  • 2021-05-17
  • 2021-08-07
  • 2021-08-26
猜你喜欢
  • 2021-08-07
  • 2021-08-07
  • 2021-12-03
  • 2021-08-07
  • 2021-10-13
  • 2021-12-10
  • 2021-08-07
相关资源
相似解决方案