webForumDet fria alternativet

Hämta data från annans sidas källkod

PHP

6 svar · 1 303 visningar · startad av henkepenka

Medlem sedan sep. 2002125 inlägg
Frågan#1

Hej,

Jag håller på med ett litet projekt där jag vill hämta ut data från DN´s SOS Live sida (http://www.dn.se/nyheter/soslive).

På den sidan finns en iframe som visar de senast inkomna larmen till SOS. Jag har tidigare använt följande kod för att hämta ut datan.

function curl_download($Url){
 
    // is cURL installed yet?
    if (!function_exists('curl_init')){
        die('Sorry cURL is not installed!');
    }
 
    // OK cool - then let's create a new cURL resource handle
    $ch = curl_init();
 
    // Now set some options (most are optional)
 
    // Set URL to download
    curl_setopt($ch, CURLOPT_URL, $Url);
 
    // Set a referer
    curl_setopt($ch, CURLOPT_REFERER, "http://www.dn.se");
 
    // User agent
    curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
 
    // Include header in result? (0 = yes, 1 = no)
    curl_setopt($ch, CURLOPT_HEADER, 0);
 
    // Should cURL return or print out the data? (true = return, false = print)
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 
    // Timeout in seconds
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
 
    // Download the given URL, and return output
    $output = curl_exec($ch);
 
    // Close the cURL resource, and free system resources
    curl_close($ch);
 
    return $output;
}

$sosURL = 'http://div.dn.se/dn/sos/soslive.php?id=p://www.dn.se/nyheter/soslive';
$data = curl_download($sosURL);

Men efter inatt har detta slutat fungera. Jag märker nu att när jag går in på länken "http://div.dn.se/dn/sos/soslive.php?id=p://www.dn.se/nyheter/soslive" visas inte något innehåll, även fast detta fortfarande är länken till iframen.
Hur har DN löst detta och hur kommer jag runt det?

MvH
Henrik

Medlem sedan maj 20012 237 inlägg
#2

OT: data till din android app? ;)

Medlem sedan juni 200032 967 inlägg
#3

Du lär ju vara tvungen att ha DNs tillåtelse för att "låna" informationen - och då är det väl bara att fråga dem? :)

Medlem sedan sep. 2002125 inlägg
#4

jme skrev:

OT: data till din android app? ;)

=)

Medlem sedan juli 2004144 inlägg
#5

De kan ha spärrat din ip... testa att köra scriptet från annan ip.

Medlem sedan dec. 2009872 inlägg
#6

1. Rensa kakor. (Gör förmodligen ingen skillnad...??)
2. Byt User Agent till en som finns, lämpligast den vanligaste sorten: http://whatsmyuseragent.com/

Förutom att testa att köra ditt lilla program från en annan IP, som nämnts ovan, men det blir väl i så fall ett annat webb hotell, kan tänkas?

Kanske nåt gratishotell med stöd för PHP i USA?

***
Det kan också vara vettigt att inte göra för många förfrågningar.
Gör max en i timmen, eller vad du nu anser är lämpligt.
Spara resultatet i databas eller bara i applikationsvariabel och använd denna data vid presentation i din app.
Informationen blir i så fall en gnutta inaktuell, men det kanske är bättre med inaktuell information än ingen information!
Kanske 30 minuter?

Medlem sedan dec. 2009872 inlägg
#7

Denna fungerar ej för mig:
hxxp://div.dn.se/dn/sos/soslive.php?id=p://www.dn.se/nyheter/sosliv

Denna fungerar:
hxxp://www.dn.se/nyheter/sosliv

(Ej klickbara just här.)

254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)