什么是从php中的网页上的div中提取类的内容的XPATH查询?

时间:2018-04-26 18:29:22

标签: php xpath

我编写了以下代码,但它只返回空数据:

enter code here 
$code="CS225";

$url="https://cs.illinois.edu/courses/profile/{$code}";
echo $url;
$html = file_get_contents($url); 

$pokemon_doc = new DOMDocument();

libxml_use_internal_errors(TRUE); //disable libxml errors

if(!empty($html)){ //if any html is actually returned

    $pokemon_doc->loadHTML($html);
    libxml_clear_errors(); 

    $pokemon_xpath = new DOMXPath($pokemon_doc);

    $pokemon_row = $pokemon_xpath->query("//div[@id='extCoursesDescription']");

    if($pokemon_row->length > 0){
        foreach($pokemon_row as $row){
            echo $row->nodeValue . "<br/>";
        }
    }
}

我想抓的网站是:https://cs.illinois.edu/courses/profile/CS225

1 个答案:

答案 0 :(得分:2)

课程内容似乎是在加载页面时加载到源代码上的。但是如果你浏览了加载的源代码,你就可以...

<script type='text/javascript' src='//ws.engr.illinois.edu/courses/item.asp?n=3&course=CS225'></script>

通过此链接,您可以跟踪到网址http://ws.engr.illinois.edu/courses/item.asp?n=3&course=CS225,这会为您提供实际内容。因此,使用这个新URL而不是原始URL,您应该能够从那里提取信息。

虽然这些内容全部包含在document.write()中。

<强>更新

删除document()位 - 一种简单的方法就是处理内容......

$html = file_get_contents($url);

$html = str_replace(["document.write('","');"], "", $html);
$html = str_replace('\"', '"', $html);