本篇文章更新時間:2019/02/16
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
寫爬蟲不是撈回來就行,還有一系列整理的功夫。
其中 PHP 使用 DOMDocument 也是比較好的解法! 這幾天再把爬回來的 HTML 片段資料做屬性置換時發生一些問題,又以下面這個問題最離奇!
一段 結構的字串,一載入到 DOMDocument 方法後輸出就只剩第一張圖片結構。其他內容皆消失。...
怎麼樣都沒有找到解決辦法後嘗試補上 標籤就沒事了,實在太詭異!...
附上處理過程中寫的範例程式碼片段:
function img_url_encode($content = '') {
$doc = new DOMDocument();
$doc->loadHTML(mb_convert_encoding("{$content}", 'HTML-ENTITIES', 'UTF-8'), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$tags = $doc->getElementsByTagName('img');
foreach ($tags as $tag) {
$src = explode('/', $tag->getAttribute('src'));
$new_src = array();
for ($i = 0; $i < count($src); $i++) {
if ($i == 0) {
$new_src[] = $src[$i];
} else {
$new_src[] = urlencode($src[$i]);
}
}
$tag->setAttribute('src', join('/', $new_src));
}
return mb_convert_encoding($doc->saveHTML(), 'UTF-8', 'HTML-ENTITIES');
}
用來將組合出的 IMG 標籤字串中,src 屬性值轉換為連結編碼避免載入圖片異常。
