利用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游戏数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python如何获取网络数据

    Retrieving Data over HTTP Python 内置了 sockets 可以实现与网络连接并通过 Python 提取数据的功能. socket 是可以提供双向连接的,我们可以对同一个 socket 进行读写操作.比方说,A 对 socket 写入信息,并且将其发送给 socket 连接另一端 B:那么 B 读取 socket 的内容就可以得到 A 的信息.但是这样会有一个问题,比如说, A端并没有发送任何信息,而 B 端一直在尝试读取 socket 的内容,那么 A 端和 B

  • Python获取江苏疫情实时数据及爬虫分析

    目录 1.引言 2.获取目标网站 3.爬取目标网站 4.解析爬取内容 4.1. 解析全国今日总况 4.2. 解析全国各省份疫情情况 4.3. 解析江苏各地级市疫情情况 5.结果可视化 6. 代码 7. 参考 1.引言 最近江苏南京.湖南张家界陆续爆发疫情,目前已波及8省22市,全国共有2个高风险地区,52个中风险地区.身在南京,作为兢兢业业的打工人,默默地成为了"苏打绿".为了关注疫情状况,今天我们用python来爬一爬疫情的实时数据. 2.获取目标网站 为了使用python来获取疫情

  • python爬虫实战steam加密逆向RSA登录解析

    目录 采集目标 工具准备 项目思路解析 采集目标 网址:steam 工具准备 开发工具:pycharm 开发环境:python3.7, Windows10 使用工具包:requests 项目思路解析 访问登录页面重登录页面获取登录接口, 先输入错误的账户密码去测试登录接口. 获取到登录的接口地址,请求方法是post请求,找到需要传递的参数,可以看到密码数据是加密的第一个数据是时间戳密码加密字段应该用的base64,rsatimestamp字段目前还不清楚是什么,其他的都是固定数据. 找到pass

  • 详解python websocket获取实时数据的几种常见链接方式

    第一种, 使用create_connection链接,需要pip install websocket-client (此方法不建议使用,链接不稳定,容易断,并且连接很耗时) import time from websocket import create_connection url = 'wss://i.cg.net/wi/ws' while True: # 一直链接,直到连接上就退出循环 time.sleep(2) try: ws = create_connection(url) print

  • 利用Python实时获取steam特惠游戏数据

    目录 前言 代码部分 开发环境 先导入本次所需的模块 请求数据 获取请求的数据 解析数据 保存数据 前言 Steam是由美国电子游戏商Valve于2003年9月12日推出的数字发行平台,被认为是计算机游戏界最大的数码发行平台之一,Steam平台是全球最大的综合性数字发行平台之一.玩家可以在该平台购买.下载.讨论.上传和分享游戏和软件. 而每周的steam会开启了一轮特惠,可以让游戏打折,而玩家就会购买心仪的游戏 传说每次有大折扣,无数的玩家会去购买游戏,可以让G胖亏死 不过,由于种种原因,我总会

  • Python实时获取cmd的输出

    最近发现一个问题,一个小伙儿写的console程序不够健壮,监听SOCKET的时候容易崩,造成程序的整体奔溃,无奈他没有找到问题的解决办法,一直解决不了,可是这又是一个监控程序,还是比较要紧的,又必须想办法解决. (这是要搞死我的节奏啊....)由于个人不太懂他用的语言,只能在程序外围想办法. 环境描述: 1. 目标程序执行时会监听8080端口,TCP,并在每一次client连接后通过console输出client的IP地址. 2. 监听不是一次性完成的,而是一直监听,程序并不会退出 3. 为了

  • 利用python和百度地图API实现数据地图标注的方法

    如题,先上效果图: 主要分为两大步骤 使用python语句,通过百度地图API,对已知的地名抓取经纬度 使用百度地图API官网的html例程,修改数据部分,实现呈现效果 一.使用python语句,通过百度地图API,获取经纬度读取文件信息 import pandas as pd data = pd.read_excel('test_baidu.xlsx') data 图中可以看出,原始数据并没有经纬度. 2. 构建抓取经纬度函数 import json from urllib.request i

  • 利用python实时刷新基金估值(摸鱼小工具)

    摸鱼小工具_利用python实时刷新基金估值 效果预览 上源码 import requests import json import os from prettytable import PrettyTable import time fundlist = ['163817','161017','003860'] def GetFundJsonInfo(fundcode): url = "http://fundgz.1234567.com.cn/js/"+fundcode+"

  • 利用Python多处理库处理3D数据详解

    今天我们将介绍处理大量数据时非常方便的工具.我不会只告诉您可能在手册中找到的一般信息,而是分享一些我发现的小技巧,例如tqdm与 multiprocessing​imap​​一起使用.并行处理档案.绘制和处理 3D 数据以及如何搜索如果您有点云,则用于对象网格中的类似对象.​ 那么我们为什么要求助于并行计算呢?如今,如果您处理任何类型的数据,您可能会面临与"大数据"相关的问题.每次我们有不适合 RAM 的数据时,我们都需要一块一块地处理它.幸运的是,现代编程语言允许我们生成在多核处理器

  • 利用Python编写一个记忆翻牌游戏

    目录 导语 开发工具 环境搭建 先睹为快 原理简介 导语 昨天看到有留言竟然说我是月更博主,我明明更新地这么勤快(心虚.jpg).看吧,昨天刚更新过,今天又来更新了. 今天还是带大家写个小游戏吧,不过老是用pygame也没啥意思,这次我们换点新花样,用python自带的tkinter包写一个记忆翻牌小游戏呗. 废话不多说,让我们愉快地开始吧~ 开发工具 Python版本:3.7.4 相关模块: pygame模块: tkinter模块: pillow模块: 以及一些python自带的模块. 环境搭

  • 利用python实时刷新基金估值效果(摸鱼小工具)

    摸鱼小工具_利用python实时刷新基金估值 效果预览 上源码 import requests import json import os from prettytable import PrettyTable import time fundlist = ['163817','161017','003860'] def GetFundJsonInfo(fundcode): url = "http://fundgz.1234567.com.cn/js/"+fundcode+"

  • 利用python实现你说我猜游戏的完整实例

    目录 前言 一.游戏规则 二.实现过程 1.基本框架 2.完整案例 三.总结 前言 五一参加python技能书的答疑,发现题目中的逻辑存在问题,对应的你说我猜游戏里面的都是恒相等的.就调试修正了对应的代码,分享给大家,供大家学习与娱乐. 一.游戏规则 请你使用类 KeyValueSet 完成一个交互式命令行你想我猜游戏.支持: 装载N个句子对 你猜我想 闯关,输出上半句,等待用户猜测下半句 如果猜中就累加10分,否则扣2分 全部结束输出用户本次得分 二.实现过程 1.基本框架 我们编写一个新的c

  • 利用Python对中国500强排行榜数据进行可视化分析

    目录 一.前言 二.数据采集 1.开始爬取 获取企业列表 获取企业对应url 获取每一个企业相关数据 2.保存到Excel 三.可视化分析 1.省份分布 导入相关可视化库 统计数据 地图可视化 2.营业收入年增率 3.营业收入年减率 4.利润年增率 5.利润年减率 6.排名上升最快20家企业 7.排名下降最快20家企业 8.资产区间分布 9.市值区间分布 10.营业收入区间分布 11.利润区间分布 12.中国500强企业-排名前10营业收入.利润.资产.市值.股东权益 四.总结 一.前言 今天来

  • 利用Python在一个文件的头部插入数据的实例

    在一个文件的末尾追加数据是很常用的.在使用过程中应该都比较熟悉不会出现什么错误.但是往一个文件头部插入数据可能或多或少会碰到一些问题. 看似正确的错误代码 很多代码看似正确,但是其实都是错的.一起来看下这些代码 1.看似正确的错误代码1 with open(path, "r+") as f: f.seek(0) f.write(data) 确实是从头写了,而且有些原有数据确实在,但是数据有问题.... 因为"r+"方式写文件操作没有插入的语义,只有写文件的含义,原来

随机推荐