Я пытаюсь прочитать содержимое веб-сайта, используя cURL, чтобы сравнить некоторые данные. Мне удалось получить содержимое веб-страницы с помощью cURL, но когда я хочу извлечь некоторые данные из содержимого, это не работает. Я анализирую содержимое с помощью DOMDocument, но кажется, что такие символы, как & и € и т. д., не преобразуются должным образом, поэтому происходит сбой. вот почему я поставил с ним htmlentities, но это тоже не работает.
Это одна из ошибок, которые я получаю: Предупреждение: DOMDocument::loadHTML() [domdocument.loadhtml]: htmlParseEntityRef: ожидается ';' в Entity, строка: 37 в URL в строке 40
Может ли кто-нибудь предложить мне, что я должен делать по-другому?
Вот как я получаю содержимое веб-сайта: function get_web_page($url) { $user_agent='Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0';
$options = array(
CURLOPT_CUSTOMREQUEST =>"GET", //set request type post or get
CURLOPT_POST =>false, //set to GET
CURLOPT_USERAGENT => $user_agent, //set user agent
CURLOPT_COOKIEFILE =>"cookie.txt", //set cookie file
CURLOPT_COOKIEJAR =>"cookie.txt", //set cookie jar
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => false, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
return $header;
}
$html = get_web_page("URL сайта");
И вот как я решил разобрать его: $dom = new DOMDocument; $dom->loadHTML(mb_convert_encoding($html["content"], 'HTML-ENTITIES', 'UTF-8'));
foreach($dom->getElementsByTagName('div') as $div){
echo $div->nodeValue."<br>";
}
Но на самом деле я ищу значение из определенного div с классом, только это значение, знаете ли вы, как я могу его получить?