上一篇简单的介绍Beautiful Soup 的基本用法,这一篇写下如何爬取网站上的图片,并保存下来

 

1.找到一个福利网站:http://www.xiaohuar.com/list-1-1.html

2.通过F12进行定位图片

3.通过下图可以看到标签为img,然后通过width=”210″的属性

 

1.通过find_all()的方法进行查找图片位置

2.筛选出图片的URL和图片名称

3.筛选后会发现其中有一些图片URL不完整

4.这个时候需要在代码中加一个判断,如何URL不完整 我们就给他补充完整

  1. import requests
  2. from bs4 import BeautifulSoup
  3. import os
  4. # 请求地址
  5. url = \'http://www.xiaohuar.com/list-1-1.html\'
  6. html = requests.get(url).content
  7. # BeautifulSoup 实例化
  8. soup = BeautifulSoup(html,\'html.parser\')
  9. jpg_data = soup.find_all(\'img\',width="210")
  10. for i in jpg_data:
  11. data = i[\'src\']
  12. name = i[\'alt\']
  13. # 判断URL是否完整
  14. if "https://www.dxsabc.com/" not in data:
  15. data = \'http://www.xiaohuar.com\'+ data

 

1.判断一个文件夹是否存在,不存在就重新创建

2.request模块请求图片的URL

3.通过content返回图片二进制,进行写入文件夹中

  1. # coding:utf-8
  2. import requests
  3. from bs4 import BeautifulSoup
  4. import os
  5. # 创建一个文件夹名称
  6. FileName = \'tupian\'
  7. if not os.path.exists(os.path.join(os.getcwd(), FileName)): # 新建文件夹
  8. print(u\'建了一个名字叫做\', FileName, u\'的文件夹!\')
  9. os.mkdir(os.path.join(os.getcwd(),\'tupian\'))
  10. else:
  11. print(u\'名字叫做\', FileName, u\'的文件夹已经存在了!\')
  12. url = \'http://www.xiaohuar.com/list-1-1.html\'
  13. html = requests.get(url).content # 返回html
  14. soup = BeautifulSoup(html,\'html.parser\') # BeautifulSoup对象
  15. jpg_data = soup.find_all(\'img\',width="210") # 找到图片信息
  16. for i in jpg_data:
  17. data = i[\'src\'] # 图片的URL
  18. name = i[\'alt\'] # 图片的名称
  19. if "https://www.dxsabc.com/" not in data:
  20. data = \'http://www.xiaohuar.com\'+data
  21. r2 = requests.get(data)
  22. fpath = os.path.join(FileName,name)
  23. with open(fpath+\'.jpg\',\'wb+\')as f : # 循环写入图片
  24. f.write(r2.content)
  25. print(\'保存成功,快去查看图片吧!!\')

图片就不贴了,喜欢的可以自己动手写一写。

版权声明:本文为qican原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qican/p/11134248.html