Python爬取网站图片并保存的实现示例

02/26 11:03
阅读数 65

先看看结果吧,去bilibili上拿到的图片=-=

第一步,导入模块


   
   
   
  1. import requests

  2. from bs4 import BeautifulSoup

requests用来请求html页面,BeautifulSoup用来解析html

第二步,获取目标html页面


   
   
   
  1. hd = {'user-agent': 'chrome/10'} # 伪装自己是个(chrome)浏览器=-=

  2.  

  3. def download_all_html():

  4. try:

  5. url = 'https://www.bilibili.com/' # 将要爬取网站的地址

  6. request = requests.get(url, timeout=30, headers=hd) # 获取改网站的信息

  7. request.raise_for_status() # 判断状态码是否为200,!=200显然爬取失败

  8. request.encoding = request.apparent_encoding # 设置编码格式

  9. return request.text # 返回html页面

  10. except:

  11. return ''

第三步,分析网站html构造

1、显示网站html代码

2、找到图片位置

3、分析


第四步,直接上代码注释够详细=-=


   
   
   
  1. def parse_single_html(html):

  2. soup = BeautifulSoup(html, 'html.parser') # 解析html,可以单独去了解一下他的使用

  3. divs = soup.find_all('div', class_='card-pic') # 获取满足条件的div,find_all(所有)

  4. for div in divs: # 瞒住条件的div有多个,我们单独获取

  5. = div.find('p') # 有源代码可知,每个div下都有一个p标签,存储图片的title,获取p标签

  6. if p == None:

  7. continue

  8. title = p['title'] # 获取p标签中的title属性,用来做图片的名称

  9. img = div.find('img')['src'] # 获取图片的地址

  10. if img[0:6] != 'https:': # 根据源代码发现,有的地址缺少"https:"前缀

  11. img = 'https:' + img # 如果缺少,我们给他添上就行啦,都据情况而定

  12. response = requests.get(img) # get方法得到图片地址(有的是post、put)基本是get

  13. with open('./Img/{}.png'.format(title), 'wb') as f: # 创建用来保存图片的.png文件

  14. f.write(response.content) # 注意,'wb'中的b 必不可少!!

  15.  

  16.  

  17. parse_single_html(download_all_html()) # 最后调用我们写的两个函数就行啦,

  18.  

查看结果

到此这篇关于python爬取网站图片并保存的实现示例的文章就介绍到这了

扫下方二维码加老师微信

或是搜索老师微信号:XTUOL1988【切记备注学习Python】

领取Python web开发,Python爬虫,Python数据分析,人工智能等学习教程。带你从零基础系统性的学好Python!

也可以加老师建的Python技术学习教程qq裙:245345507,二者加一个就可以!

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持


万水千山总是情,点个【在看】行不行

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜

本文分享自微信公众号 - python教程(pythonjc)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部