本篇文章更新時間: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 屬性值轉換為連結編碼避免載入圖片異常。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon