Permalänk
Medlem

Inga problem. Skönt att det fungerade tillslut för dig!

Visa signatur

citera!

Permalänk
Medlem

Bumpar denna tråden då det är samma skript.
Har ett nytt problem nu!

Försöker få till så jag kan uppdatera min databas med månad och år som jag la till vännen. Detta går inte att se så vitt jag vet på mobila sidan utan enbart på fullversionen av sidan via URLen http://facebook.com/profile.php?id=dittID&and=dinvänsID.

Jag lyckas logga in på fullversions-sidan och kan komma åt URLen för att se vilken månad och år man la till varandra. Däremot har jag problem att få ut det från HTML-DOM av någon anledning. ->innerText returnerar bara tomt när jag försöker hämta den. Det lustiga är att när jag skriver ut HTML sidan som curl_exec returnerar så ser jag texten där. Helskumt! Någon idé varför det blir såhär?

public function getDates() { $result = $this->db->query("SELECT * FROM `friends` WHERE `date_friended` IS NULL AND `lost` = 'false'"); if( !$result ) echo mysql_error(); $user_key = Config::get('user_key', 'unfriended'); if( !isset( $user_key ) ) return false; if( $result->num_rows() <= 0 ) die('No friends to update'); ob_start(); while( $row = $result->fetch() ) { $url = Config::get('url_full', 'unfriended') . '/profile.php?id=' . $user_key . '&and=' . $row->key; echo 'Trying to get friend ' . $row->name . ' with URL: ' . $url . '<br />'; $html = $this->_getHTML( $url ); //echo $html; $find = $html->find('div[id="globalContainer"]', 0)->find('div[id="content"]', 0) ->find('div[id="mainContainer"]', 0)->find('div[id="headerArea"]', 0) ->find('div', 0)->find('div[id="pagelet_friendship_status_text"]', 0); echo '<div>'; if( $find ) echo 'Message: ' . $find->innerText; else echo 'No'; echo '</div>'; ob_flush(); flush(); } }

Exempel output:

Citat:

Trying to get friend Alessia M with URL: http://www.facebook.com/profile.php?id=MITTID&and=HENNESID
Message:

Eftersom $find returnerar någonting(och därmed skriver ut "Message:") så hittar den ju den korrekta div:en.
Tar jag och skriver ut $html istället så får jag denna(kopierar bara slutet, det inom "headerArea"):

<div id="headerArea"> <div> <span class="fsxxl fwb"> You and <a data-hovercard="/ajax/hovercard/user.php?id=ID" href="http://www.facebook.com/profile.php?id=ID">NAME</a> <span id="friendship_header_section"></span> </span> <div id="pagelet_friendship_status_text" data-referrer="pagelet_friendship_status_text">Facebook friends since February 2010</div> </div> </div>

Förstår inte riktigt.. innerText är ju uppenbarligen någonting och det står ju precis när jag blev vän med personen i fråga. Vad är problemet? :/

Permalänk
Medlem

Har hittat problemet. Har dock fortfarande ingen lösning på det.

Problemet är att Facebook fyller

<div id="pagelet_friendship_status_text" data-referrer="pagelet_friendship_status_text"></div>

med hjälp utav javascript. Det är därför det fungerar när jag skriver ut HTML för då följer javascript med som länkas till facebook och div:en fylls med rätta texten. Provade disabla javascript och när jag körde mitt skript(som skrev ut HTML) så blev allt blankt och div:en var tom.

Hur hämtar jag något från en sida där någonting laddas via javascript?