基于steam的游戏销量预测 — PART 1 — 爬取steam游戏相关数据的爬虫

语言python

环境ubuntu

爬取内容steam游戏标签,评论,以及在 steamspy 爬取对应游戏的销量

使用相关urllib,lxml,selenium,chrome

解释

  流程图如下

  1.首先通过 steam 商店搜索页面的链接,打开 steam 搜索页面,然后用如下正则表达式来得到前100个左右的游戏的商店页面链接。

reg = r'<a href="(http://store.steampowered.com/app/.+?)"'

  2.对于得到的每个商店页面链接,可以通过如下正则表达式来得到对应的有游戏名称.

reg = r'.+?/app/[0-9]+?/(.+?)/'

   例如如下链接 http://store.steampowered.com/app/268910/Cuphead/ ,可以得到游戏名字为Cuphead。

  3.然后通过 selenium 来模拟 chrome 上的操作,以获取动态加载的网页。先打开网页 steamspy,然后在网页上检查元素,看源码,发现搜索框元素的 name 值为”s”,所以可以通过 driver.find_element_by_name("s") 找到搜索框,模拟输入对应的游戏名字。进行搜索,得到了新的页面,再通过如下正则表达式得到销量

reg = r'<strong>Owners</strong>:\s+?([0-9,]+?)\s+?'

   例如上面那个网址对应应当输入 Cuphead。

  4.得到游戏标签,这一步比较简单,打开商店链接,得到源码,然后通过如下正则表达式获取标签即可

reg=r'>\s+?([^\t]+?)\s+?</a><a href="http://store.steampowered.com/tag.+?"\s+?class="app_tag"'

  5.得到游戏评论。由于 steam 商店评论是动态加载的,所以要又通过 selenium 来模拟 chrome 的操作,首先进入商店页面,因为有些商店是有年龄确认的按钮存在,那么通过 xpath 来找 viewpage 的按钮,如果有按钮则模拟点击操作,否则不点击。代码如下

driver.find_element_by_xpath("//span[text()='View Page']").click()

  6.这样就进入了商店页面,然后类似地,通过xpath找到加载评论的按钮,加载评论,代码如下。

driver.find_element_by_xpath("//span[starts-with(@class,'game_review_summary')]").click()

  7.再通过xpath找到多条评论的链接,代码如下。

elements = driver.find_elements_by_xpath("//a[starts-with(@href,'http://steamcommunity.com/id')]")

  8.得到评论链接之后,打开评论链接,并通过如下正则表达式来得到评论正文内容。

reg = r'<div\s+?id="ReviewText">(.+?)</div>'

 

 

代码

  1 import urllib
  2 import re
  3 import sys
  4 import lxml
  5 from selenium import
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值