程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

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

編輯:Python

前言

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特惠】游戲數據(游戲名、游戲類型、原價、折扣價等)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved