您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:使用python爬取taptap网站游戏截图的步骤

51自学网 2021-10-30 22:41:49
  python
这篇教程使用python爬取taptap网站游戏截图的步骤写得很实用,希望能帮到您。

今天使用python写了一个简单的爬虫,用来下载taptap网站的游戏截图。下面说下具体的实现方法。

在搜索框中搜索“原神”

打开浏览器的开发者选项,从详情按钮里面跳转到游戏的页面,点击详情之后,跳转页面

这时候看到,浏览器地址:https://www.taptap.com/app/168332,tap官网的域名加上app/和图一的游戏id,可以使用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"下的“orignal_url”就是截图的链接。使用json.load转换成字典,就可以比较方便的取出内容了。

   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 osimport requestsimport jsonimport reimport timex_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爬取taptap游戏截图的资料请关注51zixue.net其它相关文章!


用Python给图像算法做个简单应用界面
python实现由数组生成对称矩阵
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。