濮阳杆衣贸易有限公司

主頁 > 知識庫 > 使用python爬取taptap網(wǎng)站游戲截圖的步驟

使用python爬取taptap網(wǎng)站游戲截圖的步驟

熱門標簽:蘇州電銷機器人十大排行榜 遼寧400電話辦理多少錢 外呼不封號系統(tǒng) 幫人做地圖標注收費算詐騙嗎 荊州云電銷機器人供應商 江蘇房產(chǎn)電銷機器人廠家 悟空智電銷機器人6 溫州旅游地圖標注 電信營業(yè)廳400電話申請

今天使用python寫了一個簡單的爬蟲,用來下載taptap網(wǎng)站的游戲截圖。下面說下具體的實現(xiàn)方法。

在搜索框中搜索“原神”

打開瀏覽器的開發(fā)者選項,從詳情按鈕里面跳轉(zhuǎn)到游戲的頁面,點擊詳情之后,跳轉(zhuǎn)頁面

這時候看到,瀏覽器地址:https://www.taptap.com/app/168332,tap官網(wǎng)的域名加上app/和圖一的游戲id,可以使用re模塊正則表達式模塊從接口中獲取到這個id

x_ua = 'V=1PN=WebAppLANG=zh_CNVN_CODE=4VN=0.1.0LOC=CNPLT=PCDS=AndroidUID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8DT=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=1PN=WebAppLANG=zh_CNVN_CODE=4VN=0.1.0LOC=CNPLT=PCDS=AndroidUID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8DT=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=1PN=WebAppLANG=zh_CNVN_CODE=4VN=0.1.0LOC=CNPLT=PCDS=AndroidUID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8DT=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=1PN=WebAppLANG=zh_CNVN_CODE=4VN=0.1.0LOC=CNPLT=PCDS=AndroidUID=97bb961f-bf03-4c7a-8cd7-8d6d8655d9c8DT=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游戲截圖的步驟的詳細內(nèi)容,更多關于使用python爬取taptap游戲截圖的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python爬取天氣數(shù)據(jù)的實例詳解
  • 用python爬取歷史天氣數(shù)據(jù)的方法示例
  • python爬取哈爾濱天氣信息
  • python3爬取各類天氣信息
  • Python爬取國外天氣預報網(wǎng)站的方法
  • Python基于Tkinter開發(fā)一個爬取B站直播彈幕的工具
  • Python爬蟲之爬取最新更新的小說網(wǎng)站
  • Python爬蟲之爬取二手房信息
  • Python爬蟲之獲取心知天氣API實時天氣數(shù)據(jù)并彈窗提醒

標簽:景德鎮(zhèn) 三沙 欽州 喀什 宿遷 臺灣 濟南 黃山

巨人網(wǎng)絡通訊聲明:本文標題《使用python爬取taptap網(wǎng)站游戲截圖的步驟》,本文關鍵詞  使用,python,爬取,taptap,網(wǎng)站,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用python爬取taptap網(wǎng)站游戲截圖的步驟》相關的同類信息!
  • 本頁收集關于使用python爬取taptap網(wǎng)站游戲截圖的步驟的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    洞头县| 砚山县| 太湖县| 威海市| 北碚区| 五华县| 万宁市| 安乡县| 深州市| 敦煌市| 华容县| 来凤县| 水富县| 淮南市| 夏津县| 玛多县| 彰化县| 香河县| 常山县| 什邡市| 军事| 丹阳市| 宁武县| 木里| 双柏县| 文昌市| 临邑县| 萍乡市| 达拉特旗| 嘉义市| 马尔康县| 凤台县| 榆社县| 黄大仙区| 桃江县| 峡江县| 师宗县| 茶陵县| 山东省| 云龙县| 惠东县|