Feeds:
文章
留言

Archive for 十二月 11th, 2007

喜歡抓電子書的人應該都知道 ITPub 這個網站,可是他的下載方式需要圖片驗證,而且檔案分割又多
如果能夠循序幫你抓檔該有多好

最近發現 FreeGrab 這套軟體,他是一套可透過撰寫 Lua 腳本來模擬瀏覽器得操作,因此我嘗試撰寫了抓取 ITPub 電子書的簡易 Lua 腳本,順便學習一下 Lua 語言。

首先要說明一下,我測試的 FreeGrab 版本為 1.2.3.3 Build 071025。以下是 ITPub 的 Lua 腳本

MODULE_NAME = "ITPub"
MODULE_VERSION = "0.0.1"
MODULE_REQUIRE_VERSION = "1.2.3.3"
MODULE_AUTHOR = "cwchiu@hotmail.com"
MODULE_LAST_UPDATE = "2007/12/09"

————————————————————————-
–main
————————————————————————-
function Main()   

    local url = GetUrl()
    local username = ‘你的帳號
    local passwd = ‘你的密碼
    AddFormField("login_name", username)
    AddFormField("password", passwd)
    AddFormField("furmcookie", ’30’)
    AddFormField("ts", ‘1197393424’)
    SetReferer(url)
    PostForm(‘http://sso.itpub.net/Login’)

   
    if url:find( "itpub%.net/attachment%.php" ) then           
        GetHtml()
        if not Compile("www%.itpub%.net/authimg%.php") then return false end
        local ok = GetCaptcha(‘http://www.itpub.net/authimg.php’)
        local code = PromptCaptcha(20)
        AddFormField("checkcode",code)
        SetReferer(url)
        PostForm(url)
       
        local aid = url:sub(url:len()-5,url:len())
        return PostFile(‘http://www.itpub.net/attachment.php?aid=’..aid..’&checkcode=’..code..’&downnow=1′)       
    else
        UpdateLog("網址有誤")
        return false
    end   

end

記得將上面紅色文字改寫成你的帳號和密碼。接著將該檔案存放在 FreeGrab 下的 Moduleswebhost,
並將檔名命名為 itpub.lua

接著在 Modulesconfig.lua 加入下面的片段
freegrab.MODULE["itpub.net"]        = {    name="ITPUB", cat="webhost",
                        home="http://www.itpub.net",
                        charset="UTF-8",
                        fnformat="$url.$ext"}

如此就完成 ITPub 腳本的擴充,下面畫面是運作過程

ps. 其實我原本想用 SmartGet 來達成我的需求,可是新版已經將腳本編碼,似乎不想讓別人擴充,我就放棄他了~

Read Full Post »