如何使用简单的html dom解析器从scrape中抓取特定数据

时间:2011-05-24 17:26:05

标签: php html parsing variables

我正在尝试从网页上抓取数据,但我需要在this link中获取所有数据。

include 'simple_html_dom.php';
$html1 = file_get_html('http://www.aktive-buergerschaft.de/buergerstiftungen/unsere_leistungen/buergerstiftungsfinder');

$info1 = $html1->find('b[class=[what to enter herer ]',0);

我需要从this site获取所有数据。

Bürgerstiftung Lebensraum Aachen
    rechtsfähige Stiftung des bürgerlichen Rechts
    Ansprechpartner: Hubert Schramm
    Alexanderstr. 69/ 71
    52062 Aachen
    Telefon: 0241 - 4500130
    Telefax: 0241 - 4500131
    Email: info@buergerstiftung-aachen.de
    www.buergerstiftung-aachen.de
    >> Weitere Details zu dieser Stiftung

Bürgerstiftung Achim
    rechtsfähige Stiftung des bürgerlichen Rechts
    Ansprechpartner: Helga Kühn
    Rotkehlchenstr. 72
    28832 Achim
    Telefon: 04202-84981
    Telefax: 04202-955210
    Email: info@buergerstiftung-achim.de
    www.buergerstiftung-achim.de
    >> Weitere Details zu dieser Stiftung 

我需要拥有链接“后面”的数据 - 有没有办法用简单易懂的解析器来实现这一点 - 一个可以被新手理解和编写的解析器!?

6 个答案:

答案 0 :(得分:7)

您提供的链接已关闭, 我建议你使用本机PHP“DOM”扩展而不是“简单的html解析器”,它会更快更容易;) 我使用googlecache看了一下页面,你可以使用类似的东西: -

$doc = new DOMDocument;
@$doc->loadHTMLFile('...URL....'); // Using the @ operator to hide parse errors
$contents = $doc->getElementById('content')->nodeValue; // Text contents of #content

答案 1 :(得分:2)

似乎要写在documentation

$html1->find('b[class=info]',0)->innertext;

答案 2 :(得分:2)

从我可以快速浏览的内容中,您需要遍历< dl> #content中的标签,然后是dt和dd。

foreach ($html->find('#content dl') as $item) {
     $info = $item->find('dd');
     foreach ($info as $info_item) {..}
}

使用simple_html_dom库

答案 3 :(得分:1)

XPath使得删除非常简单,并允许HTML文档中的某些更改不会影响您。例如,要提取名称,您将使用如下所示的查询:

//div[id='content']/d1/dt

一个简单的Google search将为您提供大量的教程

答案 4 :(得分:1)

@zero:有一个很好的网站可以尝试使用php和python来删除一个网站...对我来说非常有用的网站: - http://scraperwiki.com/

答案 5 :(得分:-1)