2007年5月9日

自行產生 PCDVD 討論區的 RSS Feed

※抱歉,今天才看到原來忘了附上 .pl 檔,已補上!

※2007-05-09 更新

  1. 因應必須先登入 PCDVD 後才能瀏覽討論區,配合進行相關設定。
  2. 所謂相關設定係指透過載入 Firefox 已存在之 cookies.txt 檔以便告知 Server 端這是個有效用戶請勿拒絕瀏覽,此亦表示必須自行修改內容以指定正確的 cookies.txt 檔案位址。修改內容請參閱程式內說明。
  3. 或透過 FeedBurner 取得由本系統產生的 feed (側邊欄上有訂閱記錄),目前只針對七嘴八舌異言堂討論區透別提供。

目的

  1. 練習使用 perl
  2. 原先寫的 shell script 版擷取程式在資源耗用上相對較高(不正式測試結果:Script vs Perl = 59s : 15s)

前置準備

  1. 安裝 Perl 執行環境:
    1. Windows 使用者請安裝 ActiveStateActivePerl
    2. Linux 使用者應該都已預設安裝
  2. 安裝支援模組
    1. LWP (libwww-perl):
      1. Windows 使用者:ActivePerl 預設已安裝
      2. Linux 使用者:請透過套件管理系統安裝 libwww-perl 套件
    2. XML-RSS:
      1. Windows 使用者:請操作以下指令即可:
        C:\> ppm install XML-RSS
      2. Linux 使用者:請透過套件管理系統進行安裝,套件名稱多為 XML-RSS
    3. File-Spec:
      1. Windows 使用者:請操作以下指令即可:
        C:\> ppm install File-Spec
      2. Linux 使用者:請透過套件管理系統進行安裝,套件名稱多為 File-Spec

命令稿之使用:

  1. 請下載 pcdvd-rss.pl 命令稿並儲放於自訂目錄下,如: C:\RSS
  2. pcdvd-rss.pl 接受 4 個參數,依序為:
    1. 討論區編號:請參考附圖方式取得。
      如何取得討論區編號
    2. 討論項數:一次要讀取多少筆討論串,請依資料變動情形適當設定之。另外則是此數字不包含置頂文件。
    3. 輸出目錄:要將輸出的 RSS 檔置於何處,請依平台格式予於指定之。
    4. 輸出檔名(optional):非必要參數,其作用在於指定 RSS 的輸出檔名。若未指定時,則輸出檔名將指定為 pcdvd-討論區編號.xml 。

擷取範例

  1. 擷取七嘴八舌討論區之使用範例,此範例將在 C:\RSS 目錄下建立一個 pcdvd-12.xml 的 RSS Feed 檔:
    C:\> perl C:\RSS\pcdvd-rss.pl 12 30 C:\RSS
  2. 擷取電影討論區之使用範例,此範例將在 C:\RSS 目錄下建立一個叫 pcdvd-movie.xml 的 RSS Feed 檔:
    C:\> perl C:\RSS\pcdvd-rss.pl 7 30 C:\RSS pcdvd-movie.xml

結語

  1. 完成測試後即可將之排入定時執行的行程自動產生。
  2. 擷取的時間間隔不要設定的太密集。
  3. 產生的 RSS Feed 即可餵入 RSS Aggregate 中讀取顯示。
  4. 目前提供的 PCDVD 七嘴八舌討論區 RSS Feeds 已改用此 perl script 產生,若有其他討論區需求者可自行建立。