正则解析爬取图片

因为讲的是正则解析,而不是正则表达式,所以我就默认大家会正则表达式了。最多在这里给大家看一下正则的语法。


这也是我从B站上截图截下来的。因为我自己都是学的半懂不懂的,实在没那脸说在这里讲正则表达式怎么写。

如果感觉学不会怎么办?没事,我们 python 的数据解析有正则解析、bs4解析和 xpath 解析。总有一款适合你。(这些后面都会讲到)

言归正传,什么是数据解析,在我看来,数据解析简单来说就是分析网页的源代码。

还记得像套娃一样的药监局吗?我似乎说过可以通过数据解析解决。欧克,那就让我们看一下,数据解析这么解决这个问题。

先点击左边圈起来的有鼠标样式的按键,将它移到我们的公司超链接上单击。神奇的事情发生了。


我们看到了一个网址,我们直接点击网址看看会发生什么。


哦豁,我们来到了这个页面,然后我们重复的步骤,将鼠标移到我们要爬取的数据上单击,然后我们就在网页上看到了我们要爬取的文本。


那我们是不是只要爬取我们在网页源码上看到的文本就可以了。是不是很简单?你要套娃?我直接开拆,是不是很有趣?

那我们前面学的 requests 模块是不是没什么用?

当然不是,爬取整张网页不是 requests 简单吗?再说就算有数据解析,有时候也不见得简单。比如说百度翻译,你可以试试用数据解析爬取,相信我,还不如分析它的 XHR 。

当然我们今天不搞药监局,天天看文字,不得恶心?今天我们来爬取图片。嘿嘿嘿嘿,图片~。我们今天的目标是妹子,哦不,是糗图网(https://www.qiushibaike.com/imgrank/)。


首先我们定位到一张图片,复制我们看到的链接,在前面加上 ” https: “ 会发现这就是我们需要的爬取东西。那么我们怎么爬取呢?很简单,在网页的源代码中查找。


如果我们试着去定位多个图片的源码位置,我们会发现所有我们需要的数据都在标签<div class= "thumb"下面的<img src里面,这时候我们就可以发挥正则表达式的强大作用了。

话不多说,直接上代码

import requests
import re
import osif __name__ == "__main__":# 如果不存在这个文件,创建一个文件夹if not os.path.exists("./糗图"):os.mkdir("./糗图")# UA 伪装header = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36"}# 指定 url url = "https://www.qiushibaike.com/imgrank/"# 发送请求,获取网页源码page_text = requests.get(url = url, headers = header).text# 对源代码进行正则解析ex = '<div class="thumb".*?<img src="(.*?)" alt=".*?</div>'data_list = re.findall(ex, page_text, re.S) # re.S 是必要的,因为我们是要单行查找# print(data_list)  我们可以先打印看看是否符合要求# 在爬取到的内容前加上 “https:”形成新的 urlfor data in data_list:new_url = "https:" + datatitle = data.split("/")[-1]# 请求命令photo = requests.get(url = new_url, headers = header).content # conntent 命令是为了将爬取到的数据转换成数据流path = "./糗图/" + title# 保存with open(path, "wb") as fp:fp.write(photo)print(title, "下载完成!!!") # 给一个下载完成的提示print("over!!!")

然后我们查看新建的文件夹


这说明我们成功了。当然我们只爬取了一页网页的图片,如果我们要爬取动态的网页的图片要怎么做呢?

给个提示,观察一下第二页第三页网址的区别。

这不得自己试着写一下。

冰冻三尺,非一日之寒。数据解析——正则解析(1)相关推荐

  1. 数据解析学习笔记(正则解析、bs4解析、xpath解析)

    聚焦爬虫:爬取页面中指定的页面内容. - 编码流程: - 指定url - 发起请求 - 获取响应数据 - 数据解析 - 持久化存储 数据解析分类: 正则 bs4 xpath(***) 数据解析原理概述 ...

  2. (一)基础:通过简单HTTP请求和正则进行数据爬取解析

    (一)基础:通过简单HTTP请求和正则进行数据爬取解析 文章目录 (一)基础:通过简单HTTP请求和正则进行数据爬取解析 发送简单http请求 如何使用代理ip发送请求 常用的User-Agent 发 ...

  3. Http接口请求Long类型数据JsonObject反解析精度丢失问题

    问题描述:前端解析Long类型精度丢失 前端 ajax 进行一个 Get请求,后台处理请求并返回application/json, 其中包含 Long类型的数据,前端解析呈现会有 精度丢失问题. 如图 ...

  4. pythonos pathjson_Python Json数据文件操作原理解析

    引言 接口测试就是数据的测试,在测试之前,需要准备好测试数据,而测试数据可以用数据库.excel.txt和csv方式,当然还有一种方式,那就是使用json文件来储存测试数据.常用的方式就是这些. 设计 ...

  5. hj212协议如何和php通讯,HJ212数据传输标准报文解析

    HJ212分为2005年(HJ/T212-2005)和2017年(HJ212-2017)的版本,略有不同. 网上没找到非常官方的渠道下载,在这贴一份2017年版本的下载地址 TCP/IP通讯包组成 名 ...

  6. SVN Error:请求的名称有效并且在数据库中找到,但是它没有相关的正确的数据来被解析...

    同事安装配置完Svn后一直down不下来文件,报错内容如下: Administrator 18:07:27  Checkout from https:/svn/web, revision HEAD, ...

  7. 某电力企业数据备份方案解析

    企业的大量信息包含在数据中,如何保护企业的数据,在现代企业管理中,已经越来越重要.本文主要讨论某电力企业业务管理系统中的数据备份实现技术和相关的方式.策略等,同时,对SmallWorld的备份做了一定 ...

  8. fastjson解析多层数据_JSON数据如何进行解析呢,方式有哪些?

    问题:JSON数据如何进行解析呢,方式有哪些? 这个问题是我们作为程序员几乎每天都要进行的操作,那它有多少种方式呢,我们这里就这点来说一说. 解析的四种方式 官方解析 谷歌 Gson 解析 阿里巴巴 ...

  9. 解析并符号 读取dll_风电场用风功率采集测风塔数据报文格式解析浅谈

    前段时间因为有点事情,好久没有更新了,非常对不住,感谢大家还在关注,下面是正文:看过我前面文章的朋友应该都知道,测风塔上送数据主要包括以下几个环境气象变量:风机轮毂处的风速.风向数据.以及其他不同高处 ...

最新文章

  1. 9个让PyTorch模型训练提速的技巧!
  2. linux开机流程、模块管理与Loader(续)
  3. “脱虚向实”大潮下:新能源自动驾驶从大厂抢人靠什么
  4. 外中断---汇编学习笔记
  5. 关于有序二维矩阵查找和字符串替换的两道算法题
  6. IE6下z-index犯癫不起作用bug的初步研究
  7. html风车相册代码,Css Html 大风车(示例代码)
  8. 输入域html,我可以让HTML输入表单域成为可选的吗?
  9. 哈希桶 entry_聊一聊面试常问的几大哈希算法问题,这些你都会了嘛??
  10. powershell 停止正在运行的用户应用
  11. XPath 获取两个node中间的HTML Nodes
  12. GO语言环境搭建 及 helloworld开发
  13. dict字典,以及字典的一些基本应用
  14. Cocos2d-x属性变化动作
  15. 计算机组成原理期末复习整理 白中英版本
  16. QQ群技术:0成本创建2000人QQ群技巧
  17. Android 10.0第三方app根据包名设置为横屏显示
  18. ios 网速监控_iOS怎么实时显示当前的网速
  19. 白名单模板_亚马逊白名单申请流程全解析
  20. 数字化转型中平台思维的十大要素-《数字化转型的道与术》

热门文章

  1. mysql随机生成数据并插入_python生成随机数据插入mysql
  2. 公路施工过程中对于路缘石滑模机作业流程的解析
  3. vue 天气插件的使用
  4. 前端学习(五)HTML5部分新特性
  5. Redux中的Reducers
  6. 计算机组成原理各章测试错题
  7. 百度地图绘制行驶轨迹、折线上添加箭头、修改地图底色
  8. python中画地图map的用法_使用basemap和python在地图中绘制海洋
  9. MacBook好用的电脑垃圾清理管家工具CleanMyMac X
  10. 如何显示文件后缀名(来源 百度)