欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 爬虫基础之爬取表情包GIF

爬虫基础之爬取表情包GIF

2025/2/26 19:36:37 来源:https://blog.csdn.net/2302_80243887/article/details/144777829  浏览:    关键词:爬虫基础之爬取表情包GIF

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

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

爬取步骤:

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

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

        

#导包
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 属性

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]

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

#向图片地址发送请求 获取二进制的数据 音乐 电影 图片视频都是以二进制形式保存
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 循坏

 

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

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

        

        

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词