簡體   English   中英

我的php搜尋器存在一些問題

[英]I have some issues with my crawler in php

我的搜尋器無法正常工作。 我希望它輸出

<div class="content">

但是當我運行它時,我得到以下輸出:

數組()

這是我的代碼:

<?php

$dom = new DOMDocument;
@$dom->loadHTML('https://www.google.com/');

$xp = new DOMXPath($dom);
$links = $xp->query('//div[contains(@class,"content")]');

$result = array();
foreach ($links as $link) {
    $result[] = array($link->getAttribute("innerHTML"), $link->nodeValue);
}
print_r($result);

?>

DOMDocument::loadHTML()從傳遞的字符串中解析HTML,請參閱docs 在您的情況下,字符串為https://www.google.com/ ,這顯然不是有效的HTML。

您可以使用cURL從頁面檢索實際的HTML。 我進行了一些快速測試,似乎Google的響應隨用戶代理的不同而不同,因此您可以使用真實的響應,例如

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36');
$html = trim(curl_exec($ch));

curl_close($ch);

$dom = new DOMDocument;
@$dom->loadHTML($html);
// rest of the code

暫無
暫無

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

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