Comment créer une feuille de calcul Google à mise à jour automatique contenant des informations sur la lecture récente dans Steam?
Le tableau doit ressembler à ici:
A2 prend des informations sur le nom du compte à partir d’ici: http://steamcommunity.com/id/PerfectPlays avec le code suivant: =IMPORTXML("http://steamcommunity.com/id/PerfectPlays", "//span[@class='actual_persona_name']")
B2 doit prendre des informations sur les dernières parties jouées à partir d’ici: http://steamcommunity.com/id/PerfectPlays/games/?tab=recent Mais uniquement à partir du jeu Dota 2. Quelqu'un peut aider avec le code pour B2?
Ceci est plus compliqué de votre autre question à propos de ImportXML avec XPath, car le tableau de la page avec ?tab=recent
est formé dynamiquement par un script. Le tableau n'existe pas dans le source de page auquel ImportXML a accès.
En inspectant la source, on peut voir les données incorporées dans un script:
<script language="javascript">
... "name":"Dota 2","last_played":1433455140,"hours":"97.3", ....
Alors, pour l'obtenir:
Obtenez tous les scripts sur la page avec XPath //script
(il est également possible d’obtenir uniquement le 12 dont nous avons besoin avec (//script)[12]
, mais l’importation s’interrompt s’ils ajoutent ou suppriment un autre script).
Extrayez le nombre d'heures avec REGEXEXTRACT
. Cela m'a pris deux commandes car la bibliothèque de regex utilisée par Google Spreadsheets est assez limitée; il ne prend en charge ni les anticipés ni les observateurs.
Ajoutez n'importe quel texte au nombre que vous voulez.
En une seule ligne, cela se fait par
=REGEXEXTRACT(REGEXEXTRACT(CONCATENATE(IMPORTXML("http://steamcommunity.com/id/PerfectPlays/games/?tab=recent", "//script")),"Dota\s+2[^{]*\d*\.\d+"),"[0-9.]*$")&" hrs last two weeks"
Pour des raisons de lisibilité, voici la version linebroken et indented.
=REGEXEXTRACT(
REGEXEXTRACT(
CONCATENATE(
IMPORTXML("http://steamcommunity.com/id/PerfectPlays/games/?tab=recent", "//script")
),
"Dota\s+2[^{]*\d*\.\d+"
),
"[0-9.]*$"
) & " hrs last two weeks"