什麼是部落格同步發文呢?這個服務是整合性的應用,只需一套介面,使用者即可透過僅一套的介面,就能發表文章至各大部落格,而免去一一登入與發文的動作,這就是一種同步化的服務。對使用者來說,其最大好處就是可以不受單一的網站限制,同時在各處提供 Blog Service 網站分享自己,並且與各處的朋友進行聯繫與分享,僅需下列的東西即可辦到:
- 同步發文至各大 Blog 站台
- 訂閱自己各大站的 RSS,可觀察回應文章的狀況
前陣子用 PHP 實作這等東西出來,這陣子想要順手整理一些實作筆記,當時甚至想寫成 C 或 C++ 版本!最後,發現還現要珍惜生命啊!時間還是不適合這樣浪費掉!以下的紀錄是用於封閉性的部落格系統,對於公開化的,即可改採用 XML-RPC 的實作方式,在此就不多提 XML-RPC 。
基本背景:
- HTTP
- Referer
- Cookie
- HTML
- Regular expression
- Javascript
- PHP
函式庫:
- curl
環境協助:
- Firefox
- Firebug
- Web Developer
- Wireshark
流程概念:
- 模擬登入
- 模擬發文
主體流程:
- 連到 Blog 網站
- 連到登入頁面,收集登入所需資料
- 送出登入所需資料
- 連到文章發文,收集發文所需資料
- 發表文章,收工
大致上的流程,用來收集 Cookie ,說穿了,就是跟瀏覽器逛網頁一樣!唯一需留意的,在瀏覽器上的一個 click 動作,背後極可能不是一步!這些還包括煩人的 javascript 等,因此,偶爾需要使用Wireshark 軟體,收集一下封包,看看封包內到底塞了什麼資料,另外,本實作主要使用 curl 這函式庫,除了可以送出 HTTP-REFERER 的偽裝術外,最最重要的就是收集 Cookie 的動作!各大網站整體上還不少是使用 Cookie 來完成整個帳號登入的流程,若沒有 Cookie 那可是寸步難行。
如果有意將以開發好的 PHP 程式,轉換成 C 或 C++ ,整體上的關鍵就只是 curl,這真的是好物!
最後,則是開發完這項服務的心得:沒事還是不要碰。實在是這些客製化的東西,當對方網站的登入流程、網頁內容或相關格式改變,那之前實作的產品就會變成廢物了,唯一能做的,除了不定期地更新外,就是使用 Regular expression 來達到彈性化,只是,這項服務比較像用來練功啦。
相關投影片:以PHP-cURL模擬瀏覽器行為
這軟體要怎麼才可以有丫,去那抓或買??
回覆刪除我想要...
謝謝
版主回覆:(04/14/2009 05:26:59 AM)
請您再等等一會, 聽說有個軟體 NUWeb 即將提供這個服務, 可以把文章很隨手地發表到各大部落格囉! 有興趣也可以 Google 這個 NUWeb 關鍵字看看, 裡頭有個叫 NUBlog 的服務, 可以達到上述提的效果囉!
...> . <... (感動)有高手也在玩
回覆刪除先前小弟無事也在摸索這塊
也弄了Wireshark 在那邊拆半天的 @@
哈哈...
版主回覆:(09/28/2009 10:53:06 PM)
隨著 API 的興起,應該越來越不需要這種動作了 XD