爬虫基础之爬取表情包GIF

news/2025/1/8 4:19:48/

网站地址 : 热门表情_发表情,表情包大全fabiaoqing.com

爬取思路: 通过开发者工具找到包含页面表情包的数据包 通过re parsel css等解析提取数据

爬取步骤:

一. 请求数据 模拟浏览器向服务器发送请求

        打开F12 or 右击开发者模式
        Ctrl+F 打开搜索框 输入要找寻的数据 找到服务器返回的数据包
        将标头中的url地址复制过来 其实也就是浏览器框里的地址

        

python">#导包
import requestsurl = 'https://fabiaoqing.com/biaoqing/lists/page/3.html'
# 服务器返回的数据  response响应体对象
# 此网站没有反爬机制不需要添加请求头就可以请求到数据
resp = requests.get(url)print(resp.text)

 Ctrl+F 确认数据是否正确


二. 提取数据 提取我们想要的数据
      表情包的名称和地址
提取方式:

  1. re 正则表达式  能够从文本中提取数据
  2. xpath  路径提取器  从xml 或者是 html 中根据路径提取数据
  3. css 选择器    能够从html中选择标签  语法和前端的css语法相同
  4. parsel  从HTML和XML文档中提取数据的Python库,它依赖于lxml解析器,并且提供了类似于jQuery的选择器语法 也是scrapy的组件    可以使用css 和 xpath 语法提取数据

本案例采用parsel模块进行解析  

提取img标签中的data-original 属性

python">import parsel
# 服务器返回的数据  response响应体对象
resp = requests.get(url)
# 实例化 Selector对象
selector = parsel.Selector(resp.text)
# 使用对应的语法进行提取
gif_url = selector.css('.tagbqppdiv a')
#定义一个变量 方便保存图片
num = 1
for i in gif_url:src = ''.join(i.css('img::attr(data-original)').getall()[0])# 将地址进行切割 取到每个图片的后缀名 jpg gifend = src.split('.')[-1]

三. 保存数据 将图片保存到本地
        

python">#向图片地址发送请求 获取二进制的数据 音乐 电影 图片视频都是以二进制形式保存
content = requests.get(url=src).content
# 以二进制写入文件  在当前代码目录中 新建一个img文件夹 或使用os模块自动创建都可以
with open('img\\'+str(num)+'.'+f'{end}','wb') as f:f.write(content)
num+=1

运行代码

想要看到下载进度的可以下载 tqdm 模块

导包 from tqdm import tqdm 
在for 循坏遍历时加上 for i in tqdm(gif_url)即可
os:操作文件目录模块  import os  内置模块
if not os.path.exists('img\\'):os.mkdir('img\\')  


        

 Explain:
        此网站复制图片的地址在浏览器打开是打开不了的,但可以进行正常的保存

 到此一页的表情包采集完毕 
多页采集需改变page页码即可  多页采集嵌套for 循坏

 

python">for page in range(1,6):url = f'https://fabiaoqing.com/biaoqing/lists/page/{page}.html'

        本次的案例分享到此结束 感谢大家的观看 您的点赞和关注是我跟新的动力 谢谢

        

        


http://www.ppmy.cn/news/1561459.html

相关文章

深入浅出 Pytest:自动化测试的最佳实践 pytest教程 程序测试 单元化测试

一、用法 .1 断言 在测试函数中用assert(断言)来判断测试是否符合预期。 # 一个成功的测试函数def test_passing():assert (1, 2, 3) (1, 2, 3)# 一个失败的测试函数def test_failing():assert (1, 2, 3) (3, 2, 1)assert 语句本质上是用于检查一个表…

【保姆级爬虫】微博关键词搜索并获取博文和评论内容(python+selenium+chorme)

微博爬虫记录 写这个主要是为了防止自己忘记以及之后的组内工作交接,至于代码美不美观,写的好不好,统统不考虑,我只能说,能跑就不错了,上学压根没学过python好吧,基本上是crtlc&ctrlv丝滑小…

JavaScript网页设计案例:响应式动态购物车

在现代网页开发中,购物车是电子商务网站的重要功能之一。通过JavaScript,我们可以实现一个响应式动态购物车,提供用户友好的体验,并展示前端开发的核心能力。 案例需求 我们的购物车需要实现以下功能: 动态添加商品&…

【C语言程序设计——选择结构程序设计】求一元二次方程的根(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 sqrt() 函数 编程要求 测试说明 通关代码 测试结果 任务描述 本关任务:根据求根公式,计算并输出一元二次方程的两个实根,要求精确道小数点后2位。要求方程系数从键盘输入。如果输入的系数不满足求…

开源模型应用落地-qwen2-7b-instruct-LoRA微调合并-ms-swift-单机单卡-V100(十三)

一、前言 本篇文章将使用ms-swift去合并微调后的模型权重,通过阅读本文,您将能够更好地掌握这些关键技术,理解其中的关键技术要点,并应用于自己的项目中。 二、术语介绍 2.1. LoRA微调 LoRA (Low-Rank Adaptation) 用于微调大型语言模型 (LLM)。 是一种有效的自适应策略,…

【C++】P5732 【深基5.习7】杨辉三角

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入输出格式输入输出 输入输出样例 💯我的实现方法实现解析实现的优点改进空间 💯老师的实现方法实现解析优缺点对比 💯优化与…

【商城的功能开发】

商城的功能开发是一个复杂且多方面的过程,涉及前端和后端的开发、用户界面设计、数据库管理、支付系统集成等多个环节。以下是一些关键功能和步骤,可以帮助你了解商城开发的基本流程: 一、需求分析 目标用户:确定目标市场和用户需…

Redis 实现分布式锁

文章目录 引言一、Redis的两种原子操作1.1 Redis 的原子性1.2 单命令1.3 Lua 脚本1.4 对比单命令与 Lua 脚本 二、Redis 实现分布式锁2.1 分布式锁的概念与需求2.1.1 什么是分布式锁?2.1.2 分布式锁的常见应用场景 2.2 基于 Redis 的分布式锁实现2.2.1 锁的获取与释…