2022年 11月 7日

Python——爬取图片


大家好,我是@xiaomeng 小孟

您好

欢迎大家阅读今天的文章————Python爬取图片(爬虫)

最近爬虫挺火的,所以我今天也来一个爬虫!

正文:

首先,我们先下载模块,pip install requests(不多说了)

#1.导入模块

  1. import requests
  2. import re

##2.填写网址 并且 请求 (网址需要你们自己填写,想什么图片就是什么)

  1. #确定网址
  2. url='https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=%E6%B0%B4%E6%9E%9C'
  3. form_header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36",
  4. "Host":"image.baidu.com",
  5. "Accept-Language":"zh-CN,zh;q=0.9",
  6. "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
  7. }
  8. res=requests.get(url, headers=form_header).text
  9. print(res)

###3.正则表达式筛选数据

image_urls = re.findall('"objURL":"(.*?)",', res)

####4.利用for…..in:的句型找到图片网址

  1. for image_url in image_urls:
  2. print(image_url)

#####5.设置图片名称,如果图片后缀没有,就添加一个‘.jpg’(正则筛选数据 re.search)

  1. #图片名称
  2. image_name = image_url.split('/')[-1]
  3. print(image_name)
  4. image_end=re.search('(.jpg/.png/.jpeg/.gif)$',image_name)
  5. if image_end == None:
  6. image_name = image_name + '.jpg'

######6. 下载保存图片(必须在同目录内新建一个 image 文件夹,才可以下载保存)

  1. #保存
  2. image = requests.get(image_url).content
  3. with open('./image/%s'% image_name.split("&")[0], 'wb')as file:
  4. file.write(image)

以下为完整的源代码: 

  1. #请求
  2. import requests
  3. import re
  4. #确定网址
  5. url='https://image.baidu.com/search/index?tn=baiduimage&ps=1&ct=201326592&lm=-1&cl=2&nc=1&ie=utf-8&word=%E6%B0%B4%E6%9E%9C'
  6. form_header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36",
  7. "Host":"image.baidu.com",
  8. "Accept-Language":"zh-CN,zh;q=0.9",
  9. "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
  10. }
  11. res=requests.get(url, headers=form_header).text
  12. print(res)
  13. image_urls = re.findall('"objURL":"(.*?)",', res)
  14. for image_url in image_urls:
  15. print(image_url)
  16. #图片名称
  17. image_name = image_url.split('/')[-1]
  18. print(image_name)
  19. image_end=re.search('(.jpg/.png/.jpeg/.gif)$',image_name)
  20. if image_end == None:
  21. image_name = image_name + '.jpg'
  22. #保存
  23. image = requests.get(image_url).content
  24. with open('./image/%s'% image_name.split("&")[0], 'wb')as file:
  25. file.write(image)

 运行截图:

最后我再说一句:

编程语言很神奇

深不可测

还有很多知识等待着我们去探索,加油!!

_____________________________________________我是华丽的分割线~_________________________________________________

如果你喜欢这篇文章,请关注我并且点个赞吧!

 谢谢您的阅读!下期再见!

再见!

*我的邮箱是 cv6_post@163.com 大家有问题可以联系我哦~*

@文章作者: 小孟