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


Posted in Python onFebruary 26, 2021

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

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

第一步,导入模块

import requests
from 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代码

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

2、找到图片位置

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

3、分析

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

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

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

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爬取网站图片并保存的实现示例

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

Python 相关文章推荐
python调用windows api锁定计算机示例
Apr 17 Python
Python下实现的RSA加密/解密及签名/验证功能示例
Jul 17 Python
python破解zip加密文件的方法
May 31 Python
对Python 除法负数取商的取整方式详解
Dec 12 Python
详解js文件通过python访问数据库方法
Mar 03 Python
python dlib人脸识别代码实例
Apr 04 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
Python2与Python3的区别点整理
Dec 12 Python
使用pth文件添加Python环境变量方式
May 26 Python
基于Python绘制美观动态圆环图、饼图
Jun 03 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
python中使用asyncio实现异步IO实例分析
Feb 26 #Python
浅析Python模块之间的相互引用问题
Feb 26 #Python
python实现学生通讯录管理系统
Feb 25 #Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 #Python
python实现不同数据库间数据同步功能
Feb 25 #Python
使用python实现学生信息管理系统
Feb 25 #Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 #Python
You might like
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
基于PHP制作验证码
2016/10/12 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
javascript中this做事件参数相关问题解答
2013/03/17 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
jquery处理json数据实例分析
2014/06/03 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
js实现数组和对象的深浅拷贝
2017/09/30 Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
2018/08/27 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
jQuery zTree树插件的使用教程
2019/08/16 jQuery
小程序接入腾讯位置服务的详细流程
2020/03/03 Javascript
JS实现放烟花效果
2020/03/10 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[01:01:04]2018DOTA2亚洲邀请赛 4.5 淘汰赛 OpTic vs TNC 第一场
2018/04/06 DOTA
Python ljust rjust center输出
2008/09/06 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python3 合并二叉树的实现
2019/09/30 Python
如何在pycharm中安装第三方包
2020/10/27 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
异常和异常类的概念
2014/09/12 面试题
客服工作职责
2013/12/11 职场文书
《盘古开天地》教学反思
2014/02/28 职场文书
创新型城市实施方案
2014/03/06 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
Python实现猜拳与猜数字游戏的方法详解
2022/04/06 Python