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 相关文章推荐
Python3实现连接SQLite数据库的方法
Aug 23 Python
Python遍历指定文件及文件夹的方法
May 09 Python
Django imgareaselect手动剪切头像实现方法
May 26 Python
深入解析Python设计模式编程中建造者模式的使用
Mar 02 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
Jul 11 Python
Python实现注册、登录小程序功能
Sep 21 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
通过实例了解python property属性
Nov 01 Python
python中if及if-else如何使用
Jun 02 Python
python numpy实现rolling滚动案例
Jun 08 Python
python高级特性简介
Aug 13 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之第七天
2006/10/09 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
总结一些js自定义的函数
2006/08/05 Javascript
用jscript实现列出安装的软件列表
2007/06/18 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
由浅入深讲解Javascript继承机制与simple-inheritance源码分析
2015/12/13 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
Jquery组件easyUi实现选项卡切换示例
2016/08/23 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
Angular的事件和表单详解
2016/12/26 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
layui button 按钮弹出提示窗口,确定才进行的方法
2019/09/06 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
python中abs&map&reduce简介
2018/02/20 Python
对python xlrd读取datetime类型数据的方法详解
2018/12/26 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
Django实现微信小程序的登录验证功能并维护登录态
2019/07/04 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python request操作步骤及代码实例
2020/04/13 Python
python:解析requests返回的response(json格式)说明
2020/04/30 Python
HTML5逐步分析实现拖放功能的方法
2020/09/30 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
自荐信需注意事项
2014/01/25 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
儿童生日会策划方案
2014/05/15 职场文书
护理专业自荐书
2014/06/04 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技