以下は私のコードです:
$xpath = new DOMXPath($doc);
// Start from the root element
$query = '//div[contains(@class, "hudpagepad")]/div/ul/li/a';
$nodeList = @$xpath->query($query);
// The size is 104
$size = $nodeList->length;
for ( $i = 1; $i <= $size; $i++ ) {
$node = $nodeList->item($i-1);
$url = $node->getAttribute("href");
$error = scrapeURL($url);
}
function scrapeURL($url) {
$cfm = new DOMDocument();
$cfm->loadHTMLFile($url);
$cfmpath = new DOMXPath($cfm);
$pointer = $cfm->getElementById('content-area');
$filter = 'table/tr';
// The problem lies here
$state = $pointer->firstChild->nextSibling->nextSibling->nodeValue;
$nodeList = $cfmpath->query($filter, $pointer);
}
基本的に、これはリンクのリストにトラバースし、scrapeURL メソッドで各リンクをスクレイピングします。
ここでの問題はわかりませんが、ランダムに取得しようとして非オブジェクト型のエラーが$pointer
発生し、エラーなしで値が正しい場合があります。
ここで問題を知っている人はいますか?問題が発生するポイントは、ページが正しく読み込まれていないときだと思いますか?