Python实现TapTap游戏截图自动抓取教程

一颗松果
一颗松果
发布时间:2026-10-14| 2人浏览过
原创

本文详细介绍如何利用Python编写爬虫程序,自动抓取TapTap平台上的游戏高清截图。通过解析搜索接口获取游戏ID,再调用详情API提取图片链接,最终实现批量下载保存。文中包含完整的代码示例及关键步骤解析,适合对网络爬虫感兴趣的开发者参考。

Python抓取TapTap游戏截图教程

本文介绍如何使用Python编写一个简单的爬虫程序,用于自动下载TapTap网站上的游戏截图。以下是具体的实现流程与代码细节。

获取游戏ID与截图链接

首先,在TapTap网站的搜索框中输入目标游戏名称,例如“原神”。

接着,打开浏览器的开发者工具(Developer Tools),点击“详情”按钮进入游戏页面。点击后页面会跳转至该游戏的专属详情页。

观察跳转后的浏览器地址栏,可以看到URL格式为:https://www.taptap.com/app/168332。其中,TapTap官网域名后跟随“app/”及该游戏的唯一ID。我们可以利用Python的re模块(正则表达式)从相关接口数据中提取出这个游戏ID。


x_ua = 'V=1&PN=WebApp&LANG=zh_CN&VN_CODE=4&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8&DT=PC'

def search(game_name):
    """根据游戏名搜索提取出游戏id"""
    url = 'https://www.taptap.com/webapiv2/mix-search/v1/by-keyword'
    data = {
        'kw': f'{game_name}',
        'X-UA' : x_ua
        # 'X-UA': 'V=1&PN=WebApp&LANG=zh_CN&VN_CODE=4&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8&DT=PC'
    }
    r = requests.get(url=url, params=data)

    pattern = re.compile('"type":"app","identification":"app:(.+?)"', re.S)
    r1 = pattern.findall(r.text)
    #从response中提取游戏id
    return r1[0]

随后,在开发者工具中观察网络请求接口,可以发现通过特定接口能够获取到游戏截图的链接列表。

对返回的数据进行JSON格式化处理后,可以发现数据结构中“data”字段下的“screenshots”列表里,每个元素包含“original_url”键,其值即为截图的原始链接。使用json.load将响应内容转换为字典对象后,即可便捷地提取出这些图片URL。


   url = f'https://www.taptap.com/webapiv2/app/v2/detail-by-id/{search(game_name)}'
    r = requests.get(url=url, params={'X-UA': x_ua})
    data = json.loads(r.text)
    #转换为字典格式
    original_url = data.get('data').get('screenshots')
    #提取出截图url

本地保存截图实现

接下来,通过循环遍历提取到的图片链接,将每张图片下载并保存至本地指定目录。


for i in original_url:
            time.sleep(0.5)
            game_original_url = i.get('original_url')
            print(game_original_url, type(game_original_url))
            respones = requests.get(game_original_url)
            img = respones.content
            file_name = game_original_url[-36: -4]
            screenshots = os.path.join(os.path.dirname(__file__), f'screenshots/{game_name}')
            if not os.path.exists(screenshots):
                os.makedirs(screenshots)
            file_path = os.path.join(screenshots, file_name)
            with open(file_path + '.png', 'wb') as f:
                f.write(img)

完整代码示例

以下是实现上述功能的完整代码示例:


import os
import requests
import json
import re
import time

x_ua = 'V=1&PN=WebApp&LANG=zh_CN&VN_CODE=4&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8&DT=PC'

def search(game_name):
    """根据游戏名搜索提取出游戏id"""
    url = 'https://www.taptap.com/webapiv2/mix-search/v1/by-keyword'
    data = {
        'kw': f'{game_name}',
        'X-UA' : x_ua
        # 'X-UA': 'V=1&PN=WebApp&LANG=zh_CN&VN_CODE=4&VN=0.1.0&LOC=CN&PLT=PC&DS=Android&UID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8&DT=PC'
    }
    r = requests.get(url=url, params=data)

    pattern = re.compile('"type":"app","identification":"app:(.+?)"', re.S)
    r1 = pattern.findall(r.text)
    #从response中提取游戏id
    return r1[0]

def download_screenshots(game_name):
    url = f'https://www.taptap.com/webapiv2/app/v2/detail-by-id/{search(game_name)}'
    r = requests.get(url=url, params={'X-UA': x_ua})
    data = json.loads(r.text)
    #转换为字典格式
    original_url = data.get('data').get('screenshots')
    #提取出截图url
    try:
        for i in original_url:
            time.sleep(0.5)
            game_original_url = i.get('original_url')
            print(game_original_url, type(game_original_url))
            respones = requests.get(game_original_url)
            img = respones.content
            file_name = game_original_url[-36: -4]
            screenshots = os.path.join(os.path.dirname(__file__), f'screenshots/{game_name}')
            if not os.path.exists(screenshots):
                os.makedirs(screenshots)
            file_path = os.path.join(screenshots, file_name)
            with open(file_path + '.png', 'wb') as f:
                f.write(img)

    except:
        print('下载失败')

if __name__ == '__main__':
    download_screenshots('lol')

以上即为使用Python爬取TapTap游戏截图的完整步骤与详细解析。如需获取更多相关技术资料,请持续关注本站发布的其他文章。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。