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 ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
python BeautifulSoup设置页面编码的方法
Apr 03 Python
Python数据库的连接实现方法与注意事项
Feb 27 Python
Python学习思维导图(必看篇)
Jun 26 Python
Python使用正则表达式获取网页中所需要的信息
Jan 29 Python
python实现随机调用一个浏览器打开网页
Apr 21 Python
基于python全局设置id 自动化测试元素定位过程解析
Sep 04 Python
python kafka 多线程消费者&手动提交实例
Dec 21 Python
Django分组聚合查询实例分享
Apr 29 Python
python 装饰器的使用示例
Oct 10 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
Python中使用Selenium环境安装的方法步骤
Feb 22 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+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
php猜单词游戏
2015/09/29 PHP
如何解决phpmyadmin导入数据库文件最大限制2048KB
2015/10/09 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
jquery插件之easing使用
2010/08/19 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
python中如何使用朴素贝叶斯算法
2017/04/06 Python
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
python 读入多行数据的实例
2018/04/19 Python
Python 3.6 -win64环境安装PIL模块的教程
2019/06/20 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python新手学习函数默认参数设置
2020/06/03 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
招聘与培训专员岗位职责
2014/01/30 职场文书
情人节寄语大全
2014/04/11 职场文书
教师学习心得体会范文
2016/01/21 职场文书
四年级作文之植物
2019/09/20 职场文书
OpenCV中resize函数插值算法的实现过程(五种)
2021/06/05 Python
python字符串的多行输出的实例详解
2021/06/08 Python