kan een website een curl request blokkeren? ik probeer namelijk statistieken op te halen maar ik krijg slechts een blanke pagina terug (niks)... mijn code:
Dit zal je probleem waarschijnlijk niet oplossen overigens omdat je een niet ondersteunde browser pagina krijgt. Je zal bij je CURL request dus voor moeten doen alsof je een ondersteunde browser bent.
ik ga het meteen even proberen, is mijn 1e keer met curl dus zal eens kijken hoe ver ik kom, dankjewel!
P.S. Krijg het niet voor elkaar, ik accepteer cookies, heb de browser versie verhoogt en van alles maar kom er niet door heen... nu geeft hij een foutmelding dat hij enkele includes mist..
Ik wil eigenlijk gewoon de inhoud van die pagina in een variabele hebben zodat ik met explode en preg_replace informatie er uit kan halen
blijkbaar krijg je een error hierdoor. Je wordt geredirect naar een andere pagina. althans als ik het test is het zo.
Thomas - 18/10/2013 15:29 (laatste wijziging 18/10/2013 15:39)
Moderator
Ik heb het voor elkaar gekregen om de profielpagina van de gebruiker op te vragen via cURL.
Ik denk dat de volgende twee zaken doorslaggevend zijn:
- de user agent; die uit je originele post was te oud (je komt terecht op de deze-browser-wordt-niet-ondersteund pagina)
de user agent die ik heb gebruikt is Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 (laatste versie van Firefox geloof ik)
- gebrek aan output escaping
Je zegt dat je een foutmelding krijgt dat je enkele includes mist; is dit toevallig de melding:
Not Found
The requested URL /lodestone/error/cookie_disabled/ was not found on this server.
Not Found
The requested URL /lodestone/error/cookie_disabled/ was not found on this server.
In principe ging je cURL-request na het aanpassen van je user agent goed, ECHTER:
- je hebt aangegeven dat je de headers van de response wilt zien (CURLOPT_HEADER 1)
- je drukt de response unescaped af, oftewel je stuurt een complete rauwe HTTP-response naar je browser, deze raakt hierdoor van slag, waardoor je wordt geredirect, en dan ben je ineens je cookies kwijt, waardoor de website niet meer werkt (je ziet ook even een zwarte pagina voorbij flitsen als het goed is, tenzij de pagina caching van je browser aan staat, dan onthoudt deze mogelijk redirects )
Het volgende werkt wel (ik heb <pre> toegevoegd om het e.e.a. nog wat leesbaarder te maken):
Dan nog wat zaken:
- mogelijk is het verstandig om de HTTP-request te doen met de header Cache-Control: no-cache zodat je geen gecached antwoord leest, maar altijd de informatie opnieuw ophaalt
- er zijn wel meer van dit soort spinoffs van karakterprofiel-sites (als dat je doel is); je doet er verstandig aan dat als je de profielinformatie eenmaal hebt uitgelezen, je deze zelf ook ergens opslaat / cached voor een bepaalde tijd; die FF site is soms nogal traag, dus om nu elke keer die informatie binnen te trekken duurt nogal lang, daarnaast loop je de kans om geblacklist te worden als je die site bashed met honderden verzoeken voor profiel-informatie...
EDIT: benadrukken ESCAPEN output
EDIT2: er lijkt trouwens geen API/webservice/whatever te zijn voor het uitlezen van karakterprofielen, wat natuurlijk veel handiger zou zijn dan het rippen van een webpagina. Gezien de rommeligheid van de broncode is dat nog een uitdaging op zich, jammer dat ze geen opgemaakte XML hebben gebruikt, dan had je alle informatie in 1x gestructureerd binnen kunnen halen waarschijnlijk...
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.