【问题标题】:Cant seem to properly scrape the US army website for data似乎无法正确抓取美军网站的数据
【发布时间】:2013-10-11 03:22:24
【问题描述】:

我试图为 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 文档。

【问题讨论】:

  • 根据我的经验,XPath 与 HTML 配合得很好。

标签: php xpath html-parsing


【解决方案1】:

如果你使用这个:

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->innertext

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-03
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多