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中计算三角函数之cos()方法的使用简介
May 15 Python
python fabric实现远程部署
Jan 05 Python
Python中input与raw_input 之间的比较
Aug 20 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
Dec 17 Python
python__name__原理及用法详解
Nov 02 Python
Python 3.8 新功能大揭秘【新手必学】
Feb 05 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 Python
Python连接mysql方法及常用参数
Sep 01 Python
Python编程super应用场景及示例解析
Oct 05 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
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php自动载入类用法实例分析
2016/06/24 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
PHP abstract与interface之间的区别
2013/11/11 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
由浅入深讲解python中的yield与generator
2017/04/05 Python
python 识别图片中的文字信息方法
2018/05/10 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
使用python根据端口号关闭进程的方法
2018/11/06 Python
python远程邮件控制电脑升级版
2019/05/23 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python多线程thread及模块使用实例
2020/04/28 Python
如何基于python实现年会抽奖工具
2020/10/20 Python
CSS3控制HTML元素动画效果
2014/02/08 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
美国最大婚纱连锁店运营商:David’s Bridal
2019/03/12 全球购物
索尼巴西商店:Sony巴西
2019/06/21 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
集团薪酬管理制度
2014/01/13 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
劲霸男装广告词改编版
2014/03/21 职场文书
环保标语口号
2014/06/13 职场文书
安全演讲稿开场白
2014/08/25 职场文书
2015年秋季新学期寄语
2015/03/25 职场文书
Python自动化测试PO模型封装过程详解
2021/06/22 Python
vue如何清除浏览器历史栈
2022/05/25 Vue.js