利用Python實時獲取steam特惠遊戲數據

前言

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遊戲數據內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: