簡體   English   中英

使用DomXPath刮取

[英]Scraping using DomXPath

使用PHP DomXPath抓取某些網站。

當前正在使用本教程遍歷XPath。

我目前正在抓取該網站 ,獲取角色名稱和Steam ID(下面的XPath混亂是得到一個Steam ID的原因)。

我的問題是-有多個Steam ID和角色名稱。 我辛苦創建的XPath只有一個。

我應該如何抓取所有 Steam ID而不是其中一個?

$xpath = new DomXPath($this->ourTeamHTML);

/* Set HTTP response header to plain text for debugging output */
header("Content-type: text/plain");

$steamName = $xpath->query('//*[@id="wrapper"]/section/div/div[1]/div[2]/div[2]/div[1]/div/div/div[1]/div/div[1]/h5/b');
/* Traverse the DOMNodeList object to output each DomNode's nodeValue */
foreach ($steamName as $node) {
    echo "Steam Name: " . $node->nodeValue . "\n";
}

您的xpath太冗長,具有完整的路徑和元素索引,閱讀起來不直觀,並且由於頁面源的細微變化而趨於中斷。 嘗試使用以下更簡單的xpath:

//*[@id="wrapper"]//div[@class='col-md-12']//h5/b

它對我有用,可以從鏈接頁面獲取所有Steam ID和字符名稱(總共32個元素)(使用firefox的firepath附加組件進行了測試)

暫無
暫無

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

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