用网站上的网址抓取HTML

时间:2015-05-16 08:34:46

标签: php html web-scraping simple-html-dom

我正在使用php简单的html dom从webite抓取一些html,其中包括几个图像。
但是图像没有正确指向网站。例如,下面是其中一个图像的示例,您可以看到它没有指向网站。
是否可以动态更改网址以指向网站

http://www.url.com/bilder/flags_long/United States.gif

html示例

<img src="/bilder/flags_long/United States.gif" align="absmiddle" title="United States" alt="United States" border="0">

示例代码:

include('simple_html_dom.php');
$sum_gosu = file_get_html("http://www.gosugamers.net/counterstrike/news/30995-starladder-is-back-with-the-thirteenth-edition-of-starseries");
$gosu_full = $sum_gosu->find("//div[@class='content light']/div[@class='text clearfix']/div", 0);

2 个答案:

答案 0 :(得分:1)

如何连接从中获取文档的实际URL以及相对图像路径。只是为了给出一个想法(这没有经过测试,你肯定应该做一些检查,在某些情况下,图像src属性是相对的还是绝对的):

<?php
    $url = 'http://www.url.com/';
    $html = file_get_html($url);
    $images = array();

    foreach($html->find('img') as $img) {

        // Option 1: Fill your images array (in case you only need the images)
        $images[] = rtrim($url, '/') . '/' . ltrim($img->src, '/');

        // Option 2: Update $img->src inside your $html document
        $img->src = rtrim($url, '/') . '/' . ltrim($img->src, '/');

    }

?>

更新根据您的示例代码,我的示例如下所示:

<?php
    include('simple_html_dom.php');
    $sum_gosu_url = "http://www.gosugamers.net/counterstrike/news/30995-starladder-is-back-with-the-thirteenth-edition-of-starseries";
    $sum_gosu = file_get_html($sum_gosu_url);
    $gosu_full = $sum_gosu->find("//div[@class='content light']/div[@class='text clearfix']/div", 0);

    foreach($gosu_full->find('img') as $img) {
        $img->src = $sum_gosu_url . $img->src;
    }
?>

之后,$ gosu_full文档中的img src属性应该是可修复的并且可以解析(可由客户端下载)。希望有帮助,我实际上是在理解你的问题:)

答案 1 :(得分:0)

$url="http://www.url.com";
$Chtml = file_get_html($url);
$imgurl=Chtml->find("img",0)->src;
echo $url.$imgurl;