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)

运行结果:

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

相关推荐
dualven_in_csdn1 小时前
搞了两天的win7批处理脚本问题
java·linux·前端
C++chaofan3 小时前
74. 搜索二维矩阵
java·算法·leetcode·矩阵
亚林瓜子4 小时前
AWS中国云的定时任务(AWS EventBridge+AWS Lambda)
python·云计算·aws·lambda·定时任务·event·cron
摆渡搜不到你4 小时前
某腾X视频下载器2.1
python·音视频
科雷软件测试4 小时前
Python格式化:让数据输出更优雅
python
诺浅4 小时前
AWS S3 SDK FOR JAVA 基本使用及如何兼容七牛云
java·spring boot·aws
非小号4 小时前
多模态分类案例实现
python·分类·数据挖掘
Mi Manchi264 小时前
力扣热题100之二叉树的层序遍历
python·算法·leetcode
迢迢星万里灬5 小时前
Java求职者面试:微服务技术与源码原理深度解析
java·spring cloud·微服务·dubbo·netty·分布式系统
花酒锄作田5 小时前
[python]requests VS httpx VS aiohttp
python