2013年9月30日 星期一

《頭條日報》剪報

Headline Daily Old Issues

《頭條日報》是眾多免費報章做得最好,亦提供舊報最多的一家。基本上可追索到 2005 年 7 月 12 日。要下載《頭條日報》的頁面,其中一個方法是解開 iPad 版的 D 格式;另一個方法則是網頁版。

網頁版跟 iPad 版有著相同的構造,都是圖還圖、字還字。圖以 JPG 格式儲存;字為 PNG 格式記錄。找出 JPG 及 PNG 的步驟如下:
  • 打開 Wireshark 並擷取自己電腦的資料進出
  • 打開瀏覽器並跳到《頭條日報》官網
  • 打開想要的報章及報導的頁面
  • 停止 Wireshark 的記錄
  • 找查日期數字,如「20130418」便很容易找到報頁的連結
  • 在連結中 PageType 是指定頁面的格式
  • P 是「Picture」的意思
  • T 是「Text」的意思

    不過,要手動逐個 PNG 及 JPG 下載,又要把兩張圖合拼,實在很花時間。這種工作最適合現腦來做。於是簡單寫了個 PHP 來達成,方便在任何地方都能使用。下載方面用 file_get_contents 及 file_put_contents 就可以。以下是把 PNG 及 JPG 合拼的部份:
     //  Preset values
     $newspaperDate = "20130418";
     $forceDownload = false;
     $folder = "__files__/";
     $page = 86;
    
     $fileType = array("P", "T");
     $extension = array(".jpg", ".png");
    
     //  Merge text and photo to single PNG
     $filename = $newspaperDate."_HeadlineDaily_p".$page."_parts".$extension[0];
     $filePath = $folder.$filename;
     $photoImage = imagecreatefromjpeg($filePath);
     if ($photoImage === false)  {
      echo("<br>Error loading image block $filePath...skip");
      continue;
     }
    
     $width = imagesx($photoImage);
     $height = imagesy($photoImage);
    
     //  Put text onto photo, assume they are same size
     $filename = $newspaperDate."_HeadlineDaily_p".$page."_parts".$extension[1];
     $filePath = $folder.$filename;
     $textImage = imagecreatefrompng($filePath);
     imagecopy($photoImage, $textImage, 0, 0, 0, 0, $width, $height);
    
     //  Save PNG image of whole page
     $filename = $newspaperDate."_HeadlineDaily_p".$page.".png";
     $filePath = $folder.$filename;
     imagepng($photoImage, $filePath);
    
     imagedestroy($textImage);
     imagedestroy($photoImage);
     echo("<br><img src='$filePath'>");
    
  • 沒有留言: