2015-06-20 17 views
2

这里的关键字提取是一样的我已经从网页中提取代码...如何从网页使用PHP DOM

 <div class="user-details-narrow"> 
      <div class="profileheadtitle"> 
       <span class=" headline txtBlue size15"> 
        Profession 
       </span> 
      </div> 
      <div class="profileheadcontent-narrow"> 
       <span class="txtGrey size15"> 
        administration 
       </span> 
      </div> 
     </div> 

当它显示为“专业管理”的网页上显示。我想要做的是提取行业,在这种情况下,“行政”。然而,这不是那么简单,因为它似乎是因为这段代码被重复多次为各种其他问题,如

 <div class="user-details-narrow"> 
      <div class="profileheadtitle"> 
       <span class=" headline txtBlue size15"> 
        Industry 
       </span> 
      </div> 
      <div class="profileheadcontent-narrow"> 
       <span class="txtGrey size15"> 
        banking 
       </span> 
      </div> 
     </div> 

上很好地解决任何想法?

+0

什么是'administration'的独特之处,我没有看到任何与'banking'不同的东西。 – chris85

+0

这两个领域都没有什么独特之处,那是我的问题。 –

+0

是的,我可以看到这是一个问题。在这种情况下,我无法想出一种通过程序来识别正确的方法。 – chris85

回答

2

请不要使用正则表达式从页面获取节点值。

PHP有一个非常好的类名为DOMDocument。你可以像DOMDocument一样获取一个页面:

$dom = new DOMDocument; 
$dom->loadURL("http://test.de/page.html"); 
$finder = new DomXPath($doc); 
$spaner = $finder->query("//*[contains(@class, 'size15')]"); 
echo $spaner->item(0)->nodeValue . "/" . $spaner->item(1)->nodeValue; 
+0

使用PHP的DOM我仍然不知道如何正确解析HTML。正如克里斯在上面所说的,专业和行业之间的代码没有区别,也有很多其他的。我如何分别拉他们? –