2014-11-10 3 views
2

Я пытаюсь очистить твиты Twitter с пользовательской страницы с помощью «Простой HTML DOM».Получение содержимого содержимого с помощью «Простой HTML DOM»

Я могу получить твиты, но не их метку времени.

HTML, кажется, как это:

<p class="ProfileTweet-text js-tweet-text u-dir" lang="en" dir="ltr" data-aria-label-part="0">Tweet content<a href="/hashtag/TweetContent?src=hash" data-query-source="hashtag_click" class="twitter-hashtag pretty-link js-nav" dir="ltr" ><s>#</s><b>TweetContent</b></a> <a href="http://t.co/JFredfvgYs" class="twitter-timeline-link u-hidden" data-pre-embedded="true" dir="ltr" >pic.twitter.com/JFredfvgYs</a></p> 

Отметка UNIX в этом:

<span class="js-short-timestamp " 
    data-aria-label-part="last" 
    data-time="1411584273" 
    data-long-form="true" > 
    Sep 24 
    </span> 

Так что я делаю:

<?php 
include 'simple_html_dom.php'; 
$html = file_get_html('https://twitter.com/UserName'); 
$tweets = $html->find('div.ProfileTweet-contents'); 
foreach ($tweets as $tweet) { 
$tweetText = $tweet->find('p.ProfileTweet-text', 0)->plaintext; 
echo $tweetText; 
} 
?> 

... который отлично подходит для получения текста твита, но я не знаю, как подойти к тому, чтобы получить отметку времени Unix.

Я подумал:

<?php 
include 'simple_html_dom.php'; 
$html = file_get_html('https://twitter.com/UserName'); 
$tweets = $html->find('div.ProfileTweet-contents'); 
foreach ($tweets as $tweet) { 
$tweetText = $tweet->find('p.ProfileTweet-text', 0)->plaintext; 
$tweetDate = $tweet->find('span.js-short-timestamp ', 0); 
echo $tweetText.' '.$tweetDate->data-time; 
?> 

... но это все неправильно. Любая помощь?

ответ

3

Скорее всего, из-за этого свойства, к которому вы пытаетесь получить доступ. Облаченный что hypenated свойство с этим:

$tweetDate->{'data-time'}; 

Грубый пример:

$html = file_get_html('https://twitter.com/katyperry'); 
$tweet_block = $html->find('div.ProfileTweet'); 
foreach($tweet_block as $tweet) { 
    // get tweet text 
    $tweetText = $tweet->find('p.ProfileTweet-text text', 0)->innertext; 
    echo 'Tweet: ' . $tweetText . '<br/>'; 

    // get tweet stamp 
    $tweetDate = $tweet->find('a.ProfileTweet-timestamp span.js-short-timestamp', 0); 
    echo 'Timestamp: ' .$tweetDate->{'data-time'} . '<br/>'; 

    echo '<hr/>'; 
} 
+0

Оп! (примерно) Обертывание работы с дефисами! Большое спасибо, сэр! –

+0

@JohnDoe уверен, что мужчина рад, что это помогло – Ghost