PHP-从页面检索内容

时间:2009-07-17 16:32:51

标签: php tags

我想检索一个页面的内容并根据自己的喜好重新格式化...

例如:

  • 转到example.com
  • 使用“x”类
  • 获取标记内容
  • 将内容传递给特定变量
  • 以一些漂亮的形式吐出内容..array,csv,xml ...

不太难,对吗?我是一个PHP菜鸟! :)

3 个答案:

答案 0 :(得分:2)

尝试使用PHP Simple HTML DOM Parser

你可以做这样的好事:

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links with class=x
foreach($html->find('a[class=x]') as $element)
       echo $element->href . '<br>'; 

答案 1 :(得分:1)

要获取数据,有三个难度级别:

file_get_contents($url); //easy

不幸的是,许多网站对适当的用户代理的响应不是很快。你有两个选择,这里。一个比另一个更难一点。中级是Zend HTTP Client

$client = Zend_Http_Client(); //make sure to include Zend_Http, etc.
$client->setConfig($params); // params will include proper user agent
$client->setUri($aUrl);
$html = $client->request()->getBody();

选项三,您可能根本不想考虑,除非您真的希望保持脚本比面向对象更多,是探索PHP的cURL functionality

有一些PHP本地方法可以通过DOM对象访问HTML数据,但我最喜欢的是Simple HTML DOM Parser。它与jQuery / CSS样式的DOM导航非常相似。

$domObject = new Simple_HTML_Dom($html);
foreach ($domobject->find('div#theDataYouWant p') as $sentence)
{
    echo "<h3>{$sentence}</h3>";
}

答案 2 :(得分:0)

XSD可能会为您解决问题。我也考虑过wget + CSS ......