案例:从Web网页上批量下载jpg格式图片,并按照数字递增命名保存到指定的文件夹
import urllibimport urllib.requestimport re #正则表达式from time import sleep # 根据需要导入,控制下载速度# 根据url解析包含图片的页面def load_page(url):request = urllib.request.Request(url) #发送网络请求response = urllib.request.urlopen(request) # 根据url打开页面data = response.read() # 获取页面的响应数据return data# 根据图片对应的html链接下载图片def get_image(html):regx = r'http://[\S]*jpg' # 定义正则表达式,匹配页面jpg图片元素pattern = re.compile(regx) # 编译表达式,构造匹配模式# 进行正则匹配,返回包含jpg图片的所有链接get_image = re.findall(pattern,repr(html))num = 1#遍历取出以上所获取的图片for img in get_image:# 解析img变量取出的图片链接,赋给image变量image = load_page(img)# 将图片存入指定文件夹,并以从1开始递增的数字命名jpg图片with open('X:\\Py_LoadData\\%s.jpg' %num,'wb') as fb:fb.write(image) # fb相当于open(...);# wb:以二进制方式打开print("正在下载第%s张图片" %num)num = num+1sleep(2)print("下载完成!")url = 'http://xxx/'# 调用:解析url页面的方法html = load_page(url)# 调用:下载图片的方法get_image(html)
某个url打开的Web网页如下:
包含jpg图片的网页
查看jpg图片元素
执行以上代码,运行结果为:正在下载第1张图片正在下载第2张图片正在下载第3张图片正在下载第4张图片正在下载第5张图片正在下载第6张图片正在下载第7张图片正在下载第8张图片正在下载第9张图片正在下载第10张图片正在下载第11张图片正在下载第12张图片正在下载第13张图片正在下载第14张图片下载完成!
查看代码中设定保存jpg图片的文件夹,已经把该网页url中的jpg图片下载完成,如下:
作者:Fighting_001
链接:https://www.jianshu.com/p/0e40421b65ba
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
