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 BeautifulSoup设置页面编码的方法
Apr 03 Python
进一步了解Python中的XML 工具
Apr 13 Python
简单总结Python中序列与字典的相同和不同之处
Jan 19 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
Python实现矩阵加法和乘法的方法分析
Dec 19 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
mac PyCharm添加Python解释器及添加package路径的方法
Oct 29 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
详解python配置虚拟环境
Apr 08 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
解决Tensorflow占用GPU显存问题
Feb 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生成静态页面的简单示例
2014/04/17 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
7款风格新颖的jQuery/CSS3菜单导航分享
2013/04/23 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
javascript实现点击按钮弹出一个可关闭层窗口同时网页背景变灰的方法
2015/05/13 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
2016/07/09 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
深入了解js原型模式
2019/05/30 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
Python 判断 有向图 是否有环的实例讲解
2018/02/01 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
py-charm延长试用期限实例
2019/12/22 Python
Python函数生成器原理及使用详解
2020/03/12 Python
django rest framework 过滤时间操作
2020/07/12 Python
为什么说python更适合树莓派编程
2020/07/20 Python
Python读取yaml文件的详细教程
2020/07/21 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
迷你西餐厅创业计划书范文
2013/12/31 职场文书
会计求职信范文
2014/05/24 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
vue+iview实现手机号分段输入框
2022/03/25 Vue.js
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸
MySQL表字段数量限制及行大小限制详情
2022/07/23 MySQL