FOK!forum / Digital Corner / PSN Trophies 'scrapen'.
Zhanozaterdag 22 februari 2014 @ 16:29
Hallo,

Ik wil graag via deze link de json kunnen gebruiken in een webpagina. Deze json word terugggeven via 2 requests:

quote:
en

quote:
Om die requests vanuit een script te aan te kunnen spreken moet ik denk ik de requestheaders nabootsen en verzenden via cURL. Iemand die dit kan bevestigen of mij verder op weg kan helpen?
Zhanozondag 23 februari 2014 @ 11:26
Is de vraag onduidelijk of weet gewoon niemand het? Ik wil best nog wat extra uitleg geven indien nodig ;)
raptorixmaandag 24 februari 2014 @ 15:24
Dat hangt van de technologie af die je gebruikt, toevallig van de week nog gedaan voor c#.
Zhanomaandag 24 februari 2014 @ 18:53
quote:
0s.gif Op maandag 24 februari 2014 15:24 schreef raptorix het volgende:
Dat hangt van de technologie af die je gebruikt, toevallig van de week nog gedaan voor c#.
Uh het is voor een website, dus in principe gewoon in PHP of iets met Javascript oid kan ook. Maar C# ben ik ook wel enigzins mee bekend dus dan kan ik het ombouwen evt :P
KomtTijd...maandag 24 februari 2014 @ 19:02
Je weet dus nog nieteens of je deze data client-side of server-side wilt opvragen?
raptorixmaandag 24 februari 2014 @ 22:25
quote:
0s.gif Op maandag 24 februari 2014 18:53 schreef Zhano het volgende:

[..]

Uh het is voor een website, dus in principe gewoon in PHP of iets met Javascript oid kan ook. Maar C# ben ik ook wel enigzins mee bekend dus dan kan ik het ombouwen evt :P

In c# heb je een cookie container lijkt me ideaal voor deze job.
Zhanomaandag 24 februari 2014 @ 22:54
quote:
5s.gif Op maandag 24 februari 2014 19:02 schreef KomtTijd... het volgende:
Je weet dus nog nieteens of je deze data client-side of server-side wilt opvragen?
Ik wil het gewoon ophalen en in een db zetten. Dus het moet gewoon PHP zijn. Zo beter? :P
KomtTijd...maandag 24 februari 2014 @ 22:58
Dat is duidelijke taal ja.

File_get_contents() en json_decode(), klaar is kees.
Zhanomaandag 24 februari 2014 @ 23:52
quote:
14s.gif Op maandag 24 februari 2014 22:58 schreef KomtTijd... het volgende:
Dat is duidelijke taal ja.

File_get_contents() en json_decode(), klaar is kees.
Is het echt zo simpel? :o Meestal als je de pagina niet kunt openen in een aparte tab dan moet je cookies meesturen oid.
KomtTijd...dinsdag 25 februari 2014 @ 10:28
Check example #4 in de docs van file_get_contents()
Zhanodinsdag 25 februari 2014 @ 13:42
quote:
14s.gif Op dinsdag 25 februari 2014 10:28 schreef KomtTijd... het volgende:
Check example #4 in de docs van file_get_contents()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
$current_timestamp 
time();

$url "https://secure.us.playstation.com/playstation/psn/public/trophies/?onlineId=GuRBuH&_=$current_timestamp";
echo 
$url;

// Create a stream
$opts = array(
  
'http'=>array(
    
'method'=>"GET",
    
'header'=> 'Host: secure.us.playstation.com'
    
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0' ,
    
'Accept: application/json, text/javascript, */*; q=0.01',
    
'Accept-Language: nl,en-us;q=0.7,en;q=0.3' ,
    
'Accept-Encoding: gzip, deflate',
    
'X-Requested-With: XMLHttpRequest',
    
'Referer: https://secure.us.playstation.com/logged-in/trophies/public-trophies/',
    
'Cookie: s_fid=425A5955E17B360A-196F604376D8888B; WT_FPC=id=62.163.244.107-2110227456.30347414:lv=1393143189864:ss=1393143180651; s_vi=[CS]v1|296A1F508530BD13-40000302803D9A2C[CE]; eucookiepreference=accept; portalLocaleCookie=nl_NL; VISITORID=1168525022; s_vi=[CS]v1|296A1F508530BD13-40000302803D9A2C[CE]; APPLICATION_SITE_URL=http%3A//us.playstation.com/uwps/404.jsp; mbox=PC#1391892878237-345728.26_02#1394532752|check#true#1393323212|session#1393323151352-840816#1393325012; s_pers=%20s_nr%3D1393323163816-Repeat%7C1424859163816%3B%20s_pv%3Dbutton%253Ago%253AGuRBuH%253Atrophy-search%253Apdc%253Apscom%253Alogged-in%253Atrophies%253Apublic-trophies%7C1393324963825%3B; __utma=1.1151713224.1391892880.1393077682.1393283195.7; __utmz=1.1393077682.6.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); __utma=1.115171324.1391892880.1393077682.1393283195.7; __utmz=1.1393077682.6.6.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); SONYCOOKIE1=289227952.20480.0000; s_sess=%20s_cc%3Dtrue%3B%20s_ppv%3D97%3B%20s_sq%3D%3B; __utmb=1.1.10.1393323152; __utmc=1; oo_original_visit=1',
    
'Connection: keep-alive')
    );

$context stream_context_create($opts);

// Open the file using the HTTP headers set above
var_dump(file_get_contents($urlfalse$context));

?>

Doe ik hier iets heel raars dan? Deze code stopt nooit met uitvoeren... Ik heb ook op internet gezocht hoe anderen dit doen, maar nergens vind ik iets nuttigs (wat nog werkt) dus het lijkt me echt sterk dat het zo makkelijk zou zijn...
KomtTijd...dinsdag 25 februari 2014 @ 13:46
Geen idee, ik neem aan dat je in de api documentatie kunt vinden welke headers je mee moet sturen. Dat je code time-out, komt waarschijnlijk omdat de server geen antwoord geeft.
Zhanodinsdag 25 februari 2014 @ 14:57
quote:
14s.gif Op dinsdag 25 februari 2014 13:46 schreef KomtTijd... het volgende:
Geen idee, ik neem aan dat je in de api documentatie kunt vinden welke headers je mee moet sturen. Dat je code time-out, komt waarschijnlijk omdat de server geen antwoord geeft.
Welke API? Er is geen API, daarom moet het zo omslachtig. Het leek me dat dit wel duidelijk bleek uit mijn originele vraag... :{
KomtTijd...dinsdag 25 februari 2014 @ 15:20
Er is geen API? Wat staat er dan onder die URL? Geen JSON?
Zhanodinsdag 25 februari 2014 @ 15:30
quote:
5s.gif Op dinsdag 25 februari 2014 15:20 schreef KomtTijd... het volgende:
Er is geen API? Wat staat er dan onder die URL? Geen JSON?
Er is geen openbare API. Wel is er de mogelijkheid om via deze site: https://secure.us.playsta(...)ies/public-trophies/ je eigen trophies te checken of die van een ander door de gamertag in te vullen. Deze pagina doet vervolgens 2 requests via javascript naar de server en returnt de json en die word weer op de pagina weergegeven. Maar in principe is het niet de bedoeling dat je daar iets mee doet.
xzazdinsdag 25 februari 2014 @ 16:12
quote:
0s.gif Op dinsdag 25 februari 2014 15:30 schreef Zhano het volgende:

[..]

Er is geen openbare API. Wel is er de mogelijkheid om via deze site: https://secure.us.playsta(...)ies/public-trophies/ je eigen trophies te checken of die van een ander door de gamertag in te vullen. Deze pagina doet vervolgens 2 requests via javascript naar de server en returnt de json en die word weer op de pagina weergegeven. Maar in principe is het niet de bedoeling dat je daar iets mee doet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Antwoordheaders
Connection    Keep-Alive
Content-Language    en
Content-Type    application/json; charset=UTF-8
Date    Tue, 25 Feb 2014 15:11:29 GMT
Keep-Alive    timeout=30, max=37
Server    Apache
Transfer-Encoding    chunked
X-Powered-By    Servlet/2.5 JSP/2.1
Verzoekheaders
Accept    application/json, text/javascript, */*; q=0.01
Accept-Encoding    gzip, deflate
Accept-Language    nl,en-US;q=0.7,en;q=0.3
Cookie    SONYCOOKIE1=694462656.20480.0000; mbox=session#1393340971928-573059#1393342915|PC#1393340971928-573059.26_21#1394550655|check#true#1393341115; oo_original_visit=1; s_sess=%20s_cc%3Dtrue%3B%20s_ppv%3D100%3B%20s_sq%3Dsceaplaystationprod%253D%252526pid%25253Dbutton%2525253Ago%2525253Akiller%2525253Atrophy-search%2525253Apdc%2525253Apscom%2525253Alogged-in%2525253Atrophies%2525253Apublic-trophies%252526pidt%25253D1%252526oid%25253Dfunctiononclick(event)%2525257Bjavascript%2525253AcheckPTrophies()%2525253B%2525257D%252526oidt%25253D2%252526ot%25253DA%3B; s_pers=%20s_nr%3D1393341089485-New%7C1424877089485%3B%20s_pv%3Dbutton%253Ago%253Akiller%253Atrophy-search%253Apdc%253Apscom%253Alogged-in%253Atrophies%253Apublic-trophies%7C1393342889486%3B; __utma=1.589194619.1393340973.1393340973.1393340973.1; __utmb=1.2.10.1393340973; __utmc=1; __utmz=1.1393340973.1.1.utmcsr=forum.fok.nl|utmccn=(referral)|utmcmd=referral|utmcct=/topic/2078734; s_vi=[CS]v1|29865917051D3602-4000014BA003C67D[CE]; oo_inv_percent=0; oo_inv_hit=1; JSESSIONID=2vmpTMyLs1yLsK3K89dqbW0QtLMCb0GyhgHMyTSp5yKv1v4Q2mtT!594706017
Host    secure.us.playstation.com
Referer    https://secure.us.playstation.com/logged-in/trophies/public-trophies/
User-Agent    Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0
X-Requested-With    XMLHttpRequest
Zhanodinsdag 25 februari 2014 @ 16:32
quote:
0s.gif Op dinsdag 25 februari 2014 16:12 schreef xzaz het volgende:

[..]
[ code verwijderd ]

Jongens, leuk dat jullie wat random dingetjes posten enzo maar als je er even bij verteld wat je bedoelt is dat wel zo handig. De request- en responseheaders had ik zelf ook al gevonden en 'nagemaakt' maar daar kom ik niet verder mee. Ik verwacht heus geen stap voor stap handleiding ofzo, maar als je even duidelijk maakt wat je punt is dan kom ik daar een stuk verder mee ;)