使用SimpleHTMLDom从网站获取图像

时间:2012-02-28 22:21:14

标签: php screen-scraping

我有一个简单的html dom或其他刮痧问题。它甚至可以解析文件。我不知道。我正在罢工......

我正在使用Simple HTML Dom尝试从此Feed获取图片:

http://www.sierraavalanchecenter.org/bottomline-rss.php

// Include the library
include('simple_html_dom.php');

$html = file_get_html('http://www.sierraavalanchecenter.org/bottomline-rss.php'); 

// Retrieve all images and print their SRCs
foreach($html->find('img') as $e)
    echo $e->src . '<br>';

// Find all images, print their text with the "<>" included
foreach($html->find('img') as $e)
    echo $e->outertext . '<br>';

// Find the DIV tag with an id of "myId"
foreach($html->find('div#dangericon') as $e)
    echo $e->innertext . '<br>';

我尝试了几种不同的方法,但没有运气。上面的代码直接来自http://davidwalsh.name/php-notifications

我不确定我做错了什么。我不时地得到一些像HR标签这样的小东西,但不是Danger Rose #dangericon->a->img.feedEntryContent->table->tbody->tr->td中找到的文字

我想将这两者都放入$变量中,以便我可以在不同的布局中使用它们。

感谢您的任何想法。

编辑:这得到了Danger Rose。 bottom-line.php文件可能有些内容......?

<?php
// Include the library
include('simple_html_dom.php');

$html = file_get_html('http://www.sierraavalanchecenter.org/advisory'); 

foreach($html->find('td.views-field-field-danger-rose-php-value img') as $e){
        echo '<img src="http://www.sierraavalanchecenter.org/'. $e->src . '" width="400px" height="180px"/><br>';
}
?>

1 个答案:

答案 0 :(得分:1)

您尝试解析的文件是xml文件。

我建议你使用simplexml_load_file解析它 (http://nz.php.net/manual/en/function.simplexml-load-file.php)

<?php
include('simple_html_dom.php');

$xml = simplexml_load_file('http://www.sierraavalanchecenter.org/bottomline-rss.php');

$description = (string)$xml->channel->item->description;

$html = new simple_html_dom();
$html->load($description);

foreach($html->find('img') as $image) {
echo $image->src . '<br/>';
} 
?>