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 相关文章推荐
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
Python3字符串学习教程
Aug 20 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 Python
Python星号*与**用法分析
Feb 02 Python
python 查找文件名包含指定字符串的方法
Jun 05 Python
python 移除字符串尾部的数字方法
Jul 17 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
把pandas转换int型为str型的方法
Jan 29 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
python绘制趋势图的示例
Sep 17 Python
python 如何上传包到pypi
Dec 24 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
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法
2015/04/25 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
javascript中apply、call和bind的使用区别
2016/04/05 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vscode配置vue下的es6规范自动格式化详解
2019/03/20 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
详解Vue.js3.0 组件是如何渲染为DOM的
2020/11/10 Javascript
一篇不错的Python入门教程
2007/02/08 Python
python实现的jpg格式图片修复代码
2015/04/21 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
2018/07/17 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
医学生个人求职信范文
2014/02/07 职场文书
大学军训感言300字
2014/03/09 职场文书
任命书模板
2014/06/04 职场文书
忠诚奉献演讲稿
2014/09/12 职场文书
小英雄雨来观后感
2015/06/09 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书