脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python爬取网站图片并保存的实现示例

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

2021-09-10 00:05筷子夹豆腐. Python

这篇文章主要介绍了Python爬取网站图片并保存的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

第一步,导入模块

  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代码

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

2、找到图片位置

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

3、分析

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

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

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

  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. p = 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. parse_single_html(download_all_html()) # 最后调用我们写的两个函数就行啦,

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

查看结果

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

到此这篇关于Python爬取网站图片并保存的实现示例的文章就介绍到这了,更多相关Python爬取图片保存内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_46174854/article/details/113448838

延伸 · 阅读

精彩推荐