案例:从Web网页上批量下载jpg格式图片,并按照数字递增命名保存到指定的文件夹

    1. import urllib
    2. import urllib.request
    3. import re #正则表达式
    4. from time import sleep # 根据需要导入,控制下载速度
    5. # 根据url解析包含图片的页面
    6. def load_page(url):
    7. request = urllib.request.Request(url) #发送网络请求
    8. response = urllib.request.urlopen(request) # 根据url打开页面
    9. data = response.read() # 获取页面的响应数据
    10. return data
    11. # 根据图片对应的html链接下载图片
    12. def get_image(html):
    13. regx = r'http://[\S]*jpg' # 定义正则表达式,匹配页面jpg图片元素
    14. pattern = re.compile(regx) # 编译表达式,构造匹配模式
    15. # 进行正则匹配,返回包含jpg图片的所有链接
    16. get_image = re.findall(pattern,repr(html))
    17. num = 1
    18. #遍历取出以上所获取的图片
    19. for img in get_image:
    20. # 解析img变量取出的图片链接,赋给image变量
    21. image = load_page(img)
    22. # 将图片存入指定文件夹,并以从1开始递增的数字命名jpg图片
    23. with open('X:\\Py_LoadData\\%s.jpg' %num,'wb') as fb:
    24. fb.write(image) # fb相当于open(...);# wb:以二进制方式打开
    25. print("正在下载第%s张图片" %num)
    26. num = num+1
    27. sleep(2)
    28. print("下载完成!")
    29. url = 'http://xxx/'
    30. # 调用:解析url页面的方法
    31. html = load_page(url)
    32. # 调用:下载图片的方法
    33. get_image(html)

    某个url打开的Web网页如下:
    09. 爬虫实战:爬取Web网页上特定格式的图片 - 图1
    包含jpg图片的网页
    09. 爬虫实战:爬取Web网页上特定格式的图片 - 图2
    查看jpg图片元素
    执行以上代码,运行结果为:
    正在下载第1张图片
    正在下载第2张图片
    正在下载第3张图片
    正在下载第4张图片
    正在下载第5张图片
    正在下载第6张图片
    正在下载第7张图片
    正在下载第8张图片
    正在下载第9张图片
    正在下载第10张图片
    正在下载第11张图片
    正在下载第12张图片
    正在下载第13张图片
    正在下载第14张图片
    下载完成!
    查看代码中设定保存jpg图片的文件夹,已经把该网页url中的jpg图片下载完成,如下:
    09. 爬虫实战:爬取Web网页上特定格式的图片 - 图3

    作者:Fighting_001
    链接:https://www.jianshu.com/p/0e40421b65ba
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。