似乎没有正确地抓住美国军队网站的数据

时间:2013-10-11 03:22:25

标签: php xpath html-parsing

我试图为ARMY刮掉一页MOS',但似乎我做错了。

<?php
    $army = "http://www.goarmy.com/careers-and-jobs/browse-career-and-job-categories/administrative-support.AR-both.html";
$fp = file_get_contents($army);
$dom = new DOMDocument();
@$dom->loadHTML($fp);
$classes = $dom->getElementsByTagName("div");
foreach($classes as $class){        
    if($class->getAttribute("class") == "job-desc")continue;

    foreach($class->getElementsByTagName("a") as $c){
        echo $c;
    }
    break;
}
?>

是我的尝试,但我似乎无法做到正确。我希望有一个类似jQuery的选择器工具,或XPATH方式来处理我想要的东西。

我试图找到:

$("div.job-desc > h4 > a").text();
$("div.job-desc > ul > li").text();

我正在为每个分支制作国家MOS字典,然后在不久的将来扩展到其他国家。

我在想我可以将类似jquery的选择器修改为xpath,但似乎XPath可能只适用于XML,而不是HTML文档。

1 个答案:

答案 0 :(得分:0)

如果您使用此:

http://davidwalsh.name/php-notifications

并做类似的事情:

下载并包含:simple_html_dom.php 做:

$html = file_get_html($army);
foreach($html->find('div.job-desc > h4 > a') as $row){
   echo $row->innertext."\n";
}

它会做你想做的事。

要优雅,它会将每个放在一个新行上......如果需要,根据需要解析 $ row-&gt; innertext