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是一个回调函数。当连接上服务器以及相应的数据块传输完毕时会触发该回调函数,我们可以利用这个回调函数来显示当前的下载速度
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步