您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python爬取网站图片并保存的实现示例

51自学网 2021-10-30 22:54:18
  python
这篇教程Python爬取网站图片并保存的实现示例写得很实用,希望能帮到您。

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

在这里插入图片描述

第一步,导入模块

import requestsfrom bs4 import BeautifulSoup

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

第二步,获取目标html页面

hd = {'user-agent': 'chrome/10'} # 伪装自己是个(chrome)浏览器=-=def download_all_html():  try:    url = 'https://www.bilibili.com/' # 将要爬取网站的地址    request = requests.get(url, timeout=30, headers=hd) # 获取改网站的信息    request.raise_for_status() # 判断状态码是否为200,!=200显然爬取失败    request.encoding = request.apparent_encoding # 设置编码格式    return request.text # 返回html页面  except:    return ''

第三步,分析网站html构造

1、显示网站html代码

在这里插入图片描述

2、找到图片位置

在这里插入图片描述

3、分析

在这里插入图片描述

在这里插入图片描述

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

def parse_single_html(html):  soup = BeautifulSoup(html, 'html.parser') # 解析html,可以单独去了解一下他的使用  divs = soup.find_all('div', class_='card-pic') # 获取满足条件的div,find_all(所有)  for div in divs: # 瞒住条件的div有多个,我们单独获取    p = div.find('p') # 有源代码可知,每个div下都有一个p标签,存储图片的title,获取p标签    if p == None:      continue    title = p['title'] # 获取p标签中的title属性,用来做图片的名称    img = div.find('img')['src'] # 获取图片的地址    if img[0:6] != 'https:': # 根据源代码发现,有的地址缺少"https:"前缀      img = 'https:' + img # 如果缺少,我们给他添上就行啦,都据情况而定    response = requests.get(img) # get方法得到图片地址(有的是post、put)基本是get    with open('./Img/{}.png'.format(title), 'wb') as f: # 创建用来保存图片的.png文件      f.write(response.content) # 注意,'wb'中的b 必不可少!!parse_single_html(download_all_html()) # 最后调用我们写的两个函数就行啦,

在这里插入图片描述

查看结果

在这里插入图片描述

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


python中使用asyncio实现异步IO实例分析
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。