使用python爬取taptap網(wǎng)站游戲截圖的步驟
今天使用python寫了一個簡單的爬蟲,用來下載taptap網(wǎng)站的游戲截圖。下面說下具體的實現(xiàn)方法。
在搜索框中搜索“原神”
打開瀏覽器的開發(fā)者選項,從詳情按鈕里面跳轉(zhuǎn)到游戲的頁面,點擊詳情之后,跳轉(zhuǎn)頁面
這時候看到,瀏覽器地址:https://www.taptap.com/app/168332,tap官網(wǎng)的域名加上app/和圖一的游戲id,可以使用re模塊正則表達(dá)式模塊從接口中獲取到這個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): """根據(jù)游戲名搜索提取出游戲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]
然后打開開發(fā)者選項觀察接口,可以從這個接口中獲取到游戲截圖的鏈接,
把數(shù)據(jù)json格式化一下,可以發(fā)現(xiàn)在data下,"screenshots"下的“orignal_url”就是截圖的鏈接。使用json.load轉(zhuǎn)換成字典,就可以比較方便的取出內(nèi)容了。
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) #轉(zhuǎn)換為字典格式 original_url = data.get('data').get('screenshots') #提取出截圖url
之后使用一個循環(huán)將圖片保存到本地
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): """根據(jù)游戲名搜索提取出游戲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) #轉(zhuǎn)換為字典格式 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游戲截圖的步驟的詳細(xì)內(nèi)容,更多關(guān)于使用python爬取taptap游戲截圖的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
利用Python實現(xiàn)生成顏色表(color chart)
在做色彩相關(guān)的算法分析時候,經(jīng)常需要使用規(guī)則的顏色表來進(jìn)行輔助,本文就來利用numpy和opencv生成顏色表并保存為圖片,需要的可以參考一下2023-05-05使用python處理題庫表格并轉(zhuǎn)化為word形式的實現(xiàn)
這篇文章主要介紹了使用python處理題庫表格并轉(zhuǎn)化為word形式的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解
這篇文章主要介紹了SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解,Spring是分層的JavaSE/EE應(yīng)用輕量級開源框架,以IoC和AOP為內(nèi)核,提供了展現(xiàn)層 Spring MVC和持久層Spring JDBC以及業(yè)務(wù)層事務(wù)管理等眾多的企業(yè)級應(yīng)用技術(shù),需要的朋友可以參考下2023-07-07Python基于paramunittest模塊實現(xiàn)excl參數(shù)化
這篇文章主要介紹了Python基于paramunittest模塊實現(xiàn)excl參數(shù)化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04Python中使用threading.Event協(xié)調(diào)線程的運行詳解
這篇文章主要介紹了Python中使用threading.Event協(xié)調(diào)線程的運行詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05PyTorch一小時掌握之神經(jīng)網(wǎng)絡(luò)分類篇
這篇文章主要介紹了PyTorch一小時掌握之神經(jīng)網(wǎng)絡(luò)分類篇,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09