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线程池的实现实例
Nov 18 Python
总结Python中逻辑运算符的使用
May 13 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
Python3.x爬虫下载网页图片的实例讲解
May 22 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
pygame实现俄罗斯方块游戏(AI篇1)
Oct 29 Python
Pytest框架之fixture的详细使用教程
Apr 07 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
python中字符串的编码与解码详析
Dec 03 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小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
thinkPHP中验证码的简单使用方法
2015/12/26 PHP
php进行md5加密简单实例方法
2019/09/19 PHP
javascript字符串拼接的效率问题
2010/12/25 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
使用jquery prev()方法找到同级的前一个元素
2014/07/11 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
webpack3+React 的配置全解
2017/08/21 Javascript
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
vue项目使用.env文件配置全局环境变量的方法
2019/10/24 Javascript
Vue3+elementui plus创建项目的方法
2020/12/01 Vue.js
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
使用Kivy将python程序打包为apk文件
2017/07/29 Python
python实现简单聊天应用 python群聊和点对点均实现
2017/09/14 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python区块及区块链的开发详解
2019/07/03 Python
python导入库的具体方法
2020/06/18 Python
使用python实现学生信息管理系统
2021/02/25 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
竞选班长演讲稿
2013/12/30 职场文书
劳资协议书范本
2014/04/23 职场文书
企业指导教师评语
2014/04/28 职场文书
迎国庆演讲稿
2014/09/15 职场文书
世界气象日活动总结
2015/02/27 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
SQL写法--行行比较
2021/08/23 SQL Server
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python