Python爬虫爬取网页上的所有图片
一. 前言
以该网页(链接)为例,上面有图片形式的PPT内容,我的目的是将所有图片下载下来保存到本地,如果鼠标一张一张点击下载效率很低,于是可以用爬虫批量爬取图片。
采用爬虫爬取网页中的图片主要分为两个步骤:
- 获取网页中所有图片的链接;
- 下载图片对应链接并保存在本地。
接下来我将分别从以上两个步骤讲解图片爬取过程。
二. 获取图片链接
在网页中按下键盘右上角的F12
,找到网页的Html
,如图所示:
当我们的鼠标在Html
上移动时,左边对应位置处将会变成蓝色。在Html
中查找img
,直到看到左边图片对应的部分变成蓝色了,就说明找到了该图片对应的Html
语句,如图所示:
展开Html
语句,可以看到里面包含了图片的链接:
其他图片链接的位置同理,可以发现他们都有一个共同点,那就是图片的链接都出现在data-src=
和 data-type=
之间,利用正则表达式即可获取所有图片的链接。
三. 批量下载图片
这部分比较简单,只需要循环访问图片链接,下载后保存到本地即可。
完整程序如下所示:
# -*- coding: utf-8 -*-
import re
import requests
from urllib import error
from bs4 import BeautifulSoup
import osfile = ''
List = []#爬取图片链接
def Find(url, A):global Listprint('正在检测图片总数,请稍等.....')s = 0try:Result = A.get(url, timeout=7, allow_redirects=False)except BaseException:print("error");else:result = Result.textpic_url = re.findall('data-src="(.*?)" data-type', result) # 先利用正则表达式找到图片urls += len(pic_url)if len(pic_url) == 0:print("没读到")else:List.append(pic_url)return s#下载图片
def dowmloadPicture():num = 1for each in List[0]:print('正在下载第' + str(num) + '张图片,图片地址:' + str(each))try:if each is not None:pic = requests.get(each, timeout=7)else:continueexcept BaseException:print('错误,当前图片无法下载')continueelse:if len(pic.content) < 200:continuestring = file + r'\\' + str(num) + '.jpg'fp = open(string, 'wb')fp.write(pic.content)fp.close()num+=1if __name__ == '__main__': # 主函数入口headers = {'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2','Connection': 'keep-alive','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0','Upgrade-Insecure-Requests': '1'}A = requests.Session()A.headers = headersurl = 'https://mp.weixin.qq.com/s/An0nKnwlml9gvyUDyT65zQ'total = Find(url, A)print('经过检测图片共有%d张' % (total))file = input('请建立一个存储图片的文件夹,输入文件夹名称即可: ')y = os.path.exists(file)if y == 1:print('该文件已存在,请重新输入')file = input('请建立一个存储图片的文件夹,)输入文件夹名称即可: ')os.mkdir(file)else:os.mkdir(file)dowmloadPicture()print('当前爬取结束,感谢使用')
程序使用时仅需要修改网址链接即可,必要时需要修改正则表达式。
Python爬虫爬取网页上的所有图片相关推荐
- python爬虫爬取网页上的天气数据
目录 一:获取网页重要信息 二:爬取网页数据 三:源码分享 一:获取网页重要信息 在要爬取数据信息的网页上,F12进入查看网页内容 二:爬取网页数据 1 导入模块 import requests fr ...
- Python爬虫爬取网页数据并存储(一)
Python爬虫爬取网页数据并存储(一) 环境搭建 爬虫基本原理 urllib库使用 requests库使用 正则表达式 一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和 ...
- python爬虫爬取网页新闻标题-看完保证你会
python爬虫爬取网页新闻标题方法 1.首先使用浏览自带的工具--检查,查找网页新闻标题对应的元素位置,这里查到的新闻标题是在 h3 标签中 2.然后使用编辑器编写python代码 2.1方法一: ...
- python java 爬数据_如何用java爬虫爬取网页上的数据
当我们使用浏览器处理网页的时候,有时候是不需要浏览的,例如使用PhantomJS适用于无头浏览器,进行爬取网页数据操作.最近在进行java爬虫学习的小伙伴们有没有想过如何爬取js生成的网络页面吗?别急 ...
- Python爬虫---爬取数据(上)
又是女票,拿了3万多条的13年某地区的公司信息,但是三年过去了,工商局的注册信息发生了巨大变化,有的注册资本增加了,有的公司老板变多了,更有不少公司不存在了,因此,需要一份最新的信息以便于她进行使用. ...
- python爬虫爬取网页图片_Python爬虫:爬取网页图片
先分析查找要爬取图片的路径 在浏览器F12 审查元素 整体实现代码 # -- coding:UTF-8 -- import requests from bs4 import BeautifulSoup ...
- 上手快!!福利局!新手如何使用python爬虫爬取网页图片(使用正则进行数据解析)当然这个新手是我自己
作为一个python新入门小白,突然就想发个博客,一方面为了记录学习历程,一方面能分享给新入门的同学经验,更多的是想和大家一起学习和交流.以下是我以小白的角度分享的爬虫的相关知识和一个简单的爬取网页图 ...
- python如何爬虫网页数据-python爬虫——爬取网页数据和解析数据
1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 只要浏览器能够做的事情,原则上,爬虫都能够做到. ...
- 【教程+实例】Python爬虫实例——用Python爬虫爬取bangumi上的galgame资讯
文章目录 0.前言 1.什么是爬虫? 2.什么东西可以爬? 3.简易爬虫示例 4.如何筛选数据? 5.正则表达式 6.最终代码 如何修改代码,以适应自己的需求 效果截图 7.彩蛋 本人与知乎用户间宫羽 ...
- 利用Python爬虫爬取网页福利图片
最近几天,学习了爬虫算法,通过参考书籍,写下自己简单爬虫项目: 爬取某福利网站的影片海报图片 环境:anaconda3.5+spyder3.2.6 目录 1.本节目标 2.准备工作 3.抓取分析 4. ...
最新文章
- 阿里巴巴Druid,轻松实现MySQL数据库加密!
- flash流媒体资料
- 软件项目管理0628:出差面临的问题
- linux安装x11鼠标主题
- 基于GDAL库,读取海洋风场数据(.nc格式)c++版
- 使用OctreeQuantizer提高gdi+绘图质量
- 在Java / Maven中处理“Xerces hell”?
- tomcat重启时保持会话关闭
- javaweb使用quartz
- 协议栈 状态机 java_TCP状态机《LwIP协议栈源码详解——TCP/IP协议的实现》
- python求曲线拐点_使用Python检测新冠肺炎疫情拐点
- Flash遮罩之溜光字制作一
- EBSD测试常见的问题及解答(二)
- python 如何通过海表面高度数据计算海表地转流速、并绘制流线图
- 视频教程-思科CCNP专题系列⑤:路由策略路由-思科认证
- ArcGIS中shp文件的裁剪
- ZDNS正式成为“.ren”顶级域名注册管理机构
- Wps日期时间格式转文本、科学计数法转数字
- 银行卡收单业务____单边账___现实生活中单边账的处理
- 红帽linux系统下载6,红帽linux系统下载|红帽linux(RHEL)下载 v6.5 beta 官方版_小皮网...