使用PHP从twitter页面抓取图片网址

时间:2013-03-27 22:47:40

标签: php regex twitter file-get-contents scrape

我正试图从Twitter上抓取一个图片网址,例如'https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg:large'使用php。我发现以下php代码和file_get_contents工作但我不认为regurlar表达式匹配url。你能帮忙调试这段代码吗?提前谢谢。

以下是来自twitter的片段,其中包含图片:

<div class="media-gallery-image-wrapper">
     <img class="large media-slideshow-image" alt="" src="https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg:large" height="480" width="358">
 </div>

这是php代码:

<?php
    $url = 'http://t.co/s54fJgrzrG';
    $twitter_page = file_get_contents($url);
    preg_match('/(http:\/\/p.twimg.com\/[^:]+):/i', $twitter_page, $matches);
    $imgURL = array_pop($matches); 
    echo $imgURL;
?>

2 个答案:

答案 0 :(得分:1)

您的正则表达式似乎缺少URI开头的一部分。它缺少'pbs'部分,无法确定是否为http或https。

preg_match('/((http|https):\/\/pbs.twimg.com\/[^:]+):/i', $twitter_page, $matches);

答案 1 :(得分:1)

这样的事情应该提供一个URL。

<?php
    $url = 'http://t.co/s54fJgrzrG';
    $twitter_page = file_get_contents($url);
    preg_match_all('!http[s]?:\/\/pbs\.twimg\.com\/[^:]+\.(jpg|png|gif)!i', $twitter_page,$matches);
    echo $img_url=$matches[0][0];
?>

回复是

https://pbs.twimg.com/media/BGZHCHwCEAACJ19.jpg