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 sys.argv用法实例
May 28 Python
Python设计模式编程中解释器模式的简单程序示例分享
Mar 02 Python
深入理解 Python 中的多线程 新手必看
Nov 20 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
python如何导入依赖包
Jul 13 Python
Python基于traceback模块获取异常信息
Jul 23 Python
浅析关于Keras的安装(pycharm)和初步理解
Oct 23 Python
利用Python过滤相似文本的简单方法示例
Feb 03 Python
Pytorch 中net.train 和 net.eval的使用说明
May 22 Python
python中的random模块和相关函数详解
Apr 22 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
基于header的一些常用指令详解
2013/06/06 PHP
关于crontab的使用详解
2013/06/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
prototype Element学习笔记(Element篇三)
2008/10/26 Javascript
Extjs学习笔记之五 一个小细节renderTo和applyTo的区别
2010/01/07 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
AngularJS中一般函数参数传递用法分析
2016/11/22 Javascript
JavaScript使用readAsDataURL读取图像文件
2017/05/10 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
JavaScript数组及常见操作方法小结
2019/11/13 Javascript
JS highcharts实现动态曲线代码示例
2020/10/16 Javascript
Python实现控制台输入密码的方法
2015/05/29 Python
python+Django+apache的配置方法详解
2016/06/01 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
深入浅析Python科学计算库Scipy及安装步骤
2019/10/12 Python
python实现代码审查自动回复消息
2021/02/01 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
现代家居用品及礼品:LBC Modern
2018/06/24 全球购物
自荐信格式写作方法有哪些呢
2013/11/20 职场文书
小学生考试获奖感言
2014/01/30 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
2014年出纳工作总结与计划
2014/12/09 职场文书
医学生自荐信范文
2015/03/05 职场文书
正规欠条模板
2015/07/03 职场文书
获奖感言怎么写
2015/07/31 职场文书
Pytorch 中net.train 和 net.eval的使用说明
2021/05/22 Python
MYSQL如何查看操作日志详解
2022/05/30 MySQL