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中的内置函数getattr()介绍及示例
Jul 20 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
python学习之matplotlib绘制散点图实例
Dec 09 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
使用Python批量修改文件名的代码实例
Jan 24 Python
python在回调函数中获取返回值的方法
Feb 22 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
Python tkinter和exe打包的方法
Feb 05 Python
浅谈Python 参数与变量
Jun 20 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
详解python算法常用技巧与内置库
Oct 17 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
php单态设计模式(单例模式)实例
2014/11/18 PHP
php实现保存周期为1天的购物车类
2017/07/07 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
实例讲解php实现多线程
2019/01/27 PHP
跟着JQuery API学Jquery 之二 属性
2010/04/09 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
js使用递归解析xml
2014/12/12 Javascript
javascript 实现map集合
2015/04/03 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
简单谈谈Javascript函数中的arguments
2017/02/09 Javascript
SVG描边动画
2017/02/23 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
vue中的计算属性实例详解
2018/09/19 Javascript
JavaScript设计模式之责任链模式实例分析
2019/01/16 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
代码分析Python地图坐标转换
2018/02/08 Python
python实现Adapter模式实例代码
2018/02/09 Python
使用实现XlsxWriter创建Excel文件并编辑
2018/05/04 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
Python爬虫爬取微信朋友圈
2020/08/06 Python
Python截图并保存的具体实例
2021/01/14 Python
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
Laura Geller官网:美国彩妆品牌
2018/12/29 全球购物
数组越界问题
2015/10/21 面试题
一套.net面试题及答案
2016/11/02 面试题
共产党员承诺书
2014/03/25 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
卡特教练观后感
2015/06/08 职场文书
夏洛特的网观后感
2015/06/15 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript