抓取网站 URL 以获取图像的路径

问题描述 投票:0回答:3

我正在编写一个简单的 php 脚本,它将构建我的 Facebook 粉丝页面上的相册列表。

Facebook 提供了 Graph API,它给了我一个很好的相册列表,但是他们不再提供默认相册图像的路径。

我想编写一个 PHP 脚本,通过 curl 加载相册 url,并以某种方式获取包含缩略图的表中第一张图像的路径。这将是具有“UIPhotoGrid_Image”类的第一个 img 标签的“src”值。

包含好东西的布局代码块如下所示:

<div id="album_container">
    <div class="UIPhotoGrid_Container UIPhotoGrid_DefaultPadding">
        <table class="UIPhotoGrid_Table" cellpadding="0" cellspacing="0">
            <tr>
                <td class="UIPhotoGrid_TableCell">
                    <a class="UIPhotoGrid_PhotoLink clearfix" href="http://www.facebook.com/photo.php?pid=5004658&amp;id=20785087272"><img class="UIPhotoGrid_Image img" src="http://photos-e.ak.fbcdn.net/hphotos-ak-snc4/hs080.snc4/35354_422883027272_20785087272_5004658_704231_s.jpg" onload="this.fb_loaded = true;" /></a>
                </td>
                <td class="UIPhotoGrid_TableCell">
                    <a class="UIPhotoGrid_PhotoLink clearfix" href="http://www.facebook.com/photo.php?pid=5004659&amp;id=20785087272"><img class="UIPhotoGrid_Image img" src="http://photos-c.ak.fbcdn.net/hphotos-ak-snc4/hs080.snc4/35354_422883032272_20785087272_5004659_6158094_s.jpg" onload="this.fb_loaded = true;" /></a>
                </td>
                <td class="UIPhotoGrid_TableCell">
                    <a class="UIPhotoGrid_PhotoLink clearfix" href="http://www.facebook.com/photo.php?pid=5004660&amp;id=20785087272"><img class="UIPhotoGrid_Image img" src="http://photos-f.ak.fbcdn.net/hphotos-ak-snc4/hs080.snc4/35354_422883037272_20785087272_5004660_1787119_s.jpg" onload="this.fb_loaded = true;" /></a>
                </td>
            </tr>
        </table>
    </div>
</div>

遗憾的是,这超出了我当前的编码能力......有什么想法吗?

php web-scraping curl
3个回答
1
投票

您可以使用 phpsimpledom 使用 jQuery 样式语法来获取路径。

注意:Facebook 可能有多个图像集群,因此照片的 URL 可能会随着时间的推移而改变。


0
投票

你有几种可能性:

1)优雅的,你从你的 html 样本中制作一棵 dom 树并提取你的标签

2)不太优雅但高效,您可以使用正则表达式来提取该信息


0
投票

您可以使用

将站点源代码拉入字符串中
   $url = “http://www.foo.com”;
   $str = file_get_contents($url);

如果没有适合您需求的正则表达式,我只能说,在以前的经验中,我使用了大量条件语句并严重依赖 substr(),但这可能并不明智。

© www.soinside.com 2019 - 2024. All rights reserved.