[英]Get one div above the div of certain class PHP DOMDocument
這是我第一次使用PHP DOMDocument,我不知道它的方法。
我抓取具有以下格式的html
<div class=row abc>...</div>
<div class=row xyz>...</div>
<div class=row qrs>...</div>
...
...
<div class="row>This is what i want to grab</div>
<div class="row show-more-result">Show More</div>
我要實現的目標是,首先我選擇類show-more-results
的div,然后定位存在數據的上一級div。
我已經開始探索PHP DOMDocument類,但是沒有發現任何getElementByClass
方法
public function scrapping()
{
// Create a DOMDocument Object to fetch the search results
$dom = new \DOMDocument;
@$dom->loadHTML($this->_response);
$dom->preserveWhiteSpace = false;
$xpath = new \DomXpath($dom);
$show_more_div = $xpath->query('//*[@class="show-more-result"]')->item(0);
$stuff = $show_more_div->textContent;
echo($stuff);
}
我試圖將show定位為更多div,但是它說Trying to get property of non-object
就像$xpath-query()
什么也不返回一樣。
請幫助我定位所需的div。
更新
var_dump($xpath->query('//*[@class="show-more-result"]')->item(0));
// NULL
您正在執行直線字符串相等:
$show_more_div = $xpath->query('//*[@class="show-more-result"]')->item(0);
^^^^^^^
但是您的目標div的類實際上是row show-more-result
。 您需要進行子字符串匹配:
//*[contains(@class, 'show-more-result')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.