phpQuery使用DOMDocument::loadHTML方法產生報錯的處理方式

發現問題

在作爬蟲的時候,用了QueryList,在運行的過程當中查看日誌,出現不少關於phpQuery單文件的error報錯,問題是出在html非標準化格式php

[ error ] [2]DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 1262[/home/querying/PhpstormProjects/xianlang10.com/EngineSeo/vendor/jaeger/phpquery-single/phpQuery.php:328]
[ error ] [2]DOMDocument::loadHTML(): htmlParseEntityRef: expecting ';' in Entity, line: 1262[/home/querying/PhpstormProjects/xianlang10.com/EngineSeo/vendor/jaeger/phpquery-single/phpQuery.php:328]

解決問題

在查看php手冊關於DOMDocumentloadHTML方法的使用的時候,發現libxml_use_internal_errors能夠對此類錯誤,強制以libxml_get_errors()進行獲取,該函數返回內容一個迭代器html

<?php
	//所以咱們能夠在調用loadHtml方法以前,先規避這個問題
	// enable user error handling
	libxml_use_internal_errors(true);

	// load the document
	$doc = new DOMDocument;

	if (!$doc->load('file.html')) {
		foreach (libxml_get_errors() as $error) {
			// handle errors here
		}
		libxml_clear_errors();
	}
?>
相關文章
相關標籤/搜索