首頁 > 軟體

利用Python實時獲取steam特惠遊戲資料

2022-06-24 22:01:57

前言

Steam是由美國電子遊戲商Valve於2003年9月12日推出的數位發行平臺,被認為是計算機遊戲界最大的數碼發行平臺之一,Steam平臺是全球最大的綜合性數位發行平臺之一。玩家可以在該平臺購買、下載、討論、上傳和分享遊戲和軟體。

而每週的steam會開啟了一輪特惠,可以讓遊戲打折,而玩家就會購買心儀的遊戲

傳說每次有大折扣,無數的玩家會去購買遊戲,可以讓G胖虧死

不過,由於種種原因,我總會錯過一些想玩的遊戲的特惠價!!!

所以,我就在想,可不可以用Python收集steam所有每週特惠遊戲的資料

程式碼部分

開發環境

Python 3.8

Pycharm

先匯入本次所需的模組

import random
import time
import requests
import parsel
import csv

模組可以pycharm裡直接安裝,輸入pip install XXX(模組名)就行

請求資料

url = f'https://store.steampowered.com/contenthub/querypaginated/specials/TopSellers/render/?query=&start=1&count=15&cc=TW&l=schinese&v=4&tag='
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'
}
response = requests.get(url=url, headers=headers)

獲取請求的資料

html_data = response.json()['results_html']
print(html_data)

這樣網頁原始碼就獲取到了

解析資料

selector = parsel.Selector(html_data)
lis = selector.css('a.tab_item')
for li in lis:
    href = li.css('::attr(href)').get()
    title = li.css('.tab_item_name::text').get()
    tag_list = li.css('.tab_item_top_tags .top_tag::text').getall()
    tag = ''.join(tag_list)
    price = li.css('.discount_original_price::text').get()
    price_1 = li.css('.tab_item_discount .discount_final_price::text').get()
    discount = li.css('.tab_item_discount .discount_pct::text').get()
    print(title, tag, price, price_1, discount, href)

儲存資料

先把資料儲存進字典裡面

dit = {
    '遊戲': title,
    '標籤': tag,
    '原價': price,
    '售價': price_1,
    '折扣': discount,
    '詳情頁': href,
}
csv_writer.writerow(dit)

最後儲存到csv裡

f = open('遊戲_1.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=[
    '遊戲',
    '標籤',
    '原價',
    '售價',
    '折扣',
    '詳情頁',
])
csv_writer.writeheader()

最後結果

到此這篇關於利用Python實時獲取steam特惠遊戲資料的文章就介紹到這了,更多相關Python獲取steam遊戲資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com