簡體   English   中英

使用xpath和php從html頁面檢索數據

[英]Retrieve data from html page using xpath and php

我知道也有類似的問題,但是,嘗試研究PHP時遇到了此錯誤,我想了解為什么會發生這種情況。

<?php
    $url = 'http://aice.anie.it/quotazione-lme-rame/';
    echo "hello!\r\n";
    $html = new DOMDocument();
    @$html->loadHTML($url);
    $xpath = new DOMXPath($html);
    $nodelist = $xpath->query(".//*[@id='table33']/tbody/tr[2]/td[3]/b");

    foreach ($nodelist as $n) {
        echo $n->nodeValue . "\n";
    }
?>

這只會打印“你好!”。 我想打印用xpath提取的值,但是最后一個回聲什么也沒做。

您的代碼中有一些錯誤:

  1. 您嘗試從url http://aice.anie.it/quotazione-lme-rame/獲取表,但實際上它位於位於http://www.aiceweb.it/it/frame_rame.asp的iframe中,因此直接獲取iframe網址。

  2. 您可以使用loadHTML()函數來加載HTML字符串 您需要的是loadHTMLFile函數,該函數將HTML文檔的鏈接作為參數(請參閱http://www.php.net/manual/fr/domdocument.loadhtmlfile.php

  3. 您假定頁面上有一個tbody元素,但沒有一個。 因此,將其從查詢過濾器中刪除。

工作代碼:

$url = 'http://www.aiceweb.it/it/frame_rame.asp';
echo "hello!\r\n";
$html = new DOMDocument();
@$html->loadHTMLFile($url);
$xpath = new DOMXPath($html);
$nodelist = $xpath->query(".//*[@id='table33']/tr[2]/td[3]/b");

foreach ($nodelist as $n) {
    echo $n->nodeValue . "\n";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM