Python爬虫:抓取表情包的下载链接

Python爬虫:抓取表情包的下载链接

        • [1. 前言](#1. 前言)
        • [2. 具体实现](#2. 具体实现)
        • [3. 实现代码](#3. 实现代码)

1. 前言

最近发现了一个提供表情包的网址,觉得上面的内容不错,于是就考虑用Python爬虫获取上面表情包的下载链接。整体而言,实现这个挺简单的,就是找到提供表情包json数据的api接口即可,接口中没有任何加密操作。网址为:表情包

2. 具体实现

还是通过搜索功能,找到匹配搜索词的相关表情包,如下:

可以发现,当向下滑动滚动条时,表情包数据进行动态刷新增加,由此可以判定这个界面的表情包数据是通过请求api接口,然后一些js操作实现的。直接使用requests模块访问当前界面,你是无法访问到这个表情包数据的。实现上的确是这样,打开开发者工具,来到网络下的Fetch/XHR,可以找到一个api接口链接,打开这个接口,那里面有我们想要的表情包数据。

这个接口链接为:https://www.dbbqb.com/api/search/json?start=0\&w=龙王,明显这个w后的参数值应该就是我们搜索的词进行的编码操作。

至于start后的参数值,应该用于分页的操作,通过向下滑动滚动条,发现这个参数值初始为0,第二页为100,第三页为200,。。。。。。

至于这个接口中的数据,的确是图片的下载链接,如下:

3. 实现代码

实现代码仅仅把这些表情包的下载链接获取到,至于怎样下载,读者自行操作。可以考虑使用

python 复制代码
from urllib import request


url = 'https://image.dbbqb.com/202308120759/a94be64f09fb4528ed75039698d47321/NEN22'
request.urlretrieve(url=url,filename='龙王.png')

或者

python 复制代码
import requests


url = 'https://image.dbbqb.com/202308120759/a94be64f09fb4528ed75039698d47321/NEN22'
rsp = requests.get(url=url)
with open(file='龙王2.png',mode='wb') as f:
    f.write(rsp.content)

参考代码如下:

python 复制代码
import requests
import json
from urllib import parse
from crawlers.userAgent import useragent

keyword = input('搜索关键词:')
pages = input('页数:')
u = useragent()
# pages
url2 = 'https://image.dbbqb.com/'
encode_kw = parse.quote(keyword)
print(encode_kw)
for i in range(int(pages)):
    url = f'https://www.dbbqb.com/api/search/json?start={i*100}&w={encode_kw}'
    print(f'第{i + 1}页->url:{url}')
    headers = {
        'user-agent':u.getUserAgent(),
        "Accept":"application/json",
        "Cache-Control":"no-cache",
        "Connection":"keep-alive",
        "Content-Type":"application/json",
        "Cookie":"Hm_lvt_7d2469592a25c577fe82de8e71a5ae60=1690285252,1690367974,1690963288,1691797900; Hm_lpvt_7d2469592a25c577fe82de8e71a5ae60=1691798363",
        "sec-ch-ua":";Not A Brand;v=99, Chromium;v=94",
        "sec-ch-ua-mobile":"?0",
        "sec-ch-ua-platform":"Windows",
        "Sec-Fetch-Dest":"empty",
        "Sec-Fetch-Mode":"cors",
        "Sec-Fetch-Site":"same-origin",
        "Web-Agent":"web",
    }
    rsp = requests.get(url=url,headers=headers)
    arr = json.loads(rsp.text)
    for e in arr:
        download_url = url2 + e['path']
        print(download_url)

运行结果:

上述内容仅学习使用,不能用于商业活动,希望读者切记。

相关推荐
东阳马生架构1 分钟前
商品中心—1.B端建品和C端缓存的技术文档
java
Chan164 分钟前
【 SpringCloud | 微服务 MQ基础 】
java·spring·spring cloud·微服务·云原生·rabbitmq
LucianaiB7 分钟前
如何做好一份优秀的技术文档:专业指南与最佳实践
android·java·数据库
Eiceblue23 分钟前
Python读取PDF:文本、图片与文档属性
数据库·python·pdf
面朝大海,春不暖,花不开31 分钟前
自定义Spring Boot Starter的全面指南
java·spring boot·后端
得过且过的勇者y31 分钟前
Java安全点safepoint
java
weixin_5275504035 分钟前
初级程序员入门指南
javascript·python·算法
程序员的世界你不懂1 小时前
Appium+python自动化(十)- 元素定位
python·appium·自动化
夜晚回家1 小时前
「Java基本语法」代码格式与注释规范
java·开发语言
斯普信云原生组1 小时前
Docker构建自定义的镜像
java·spring cloud·docker