使用FreeGrab 抓ITPub 的電子書

转载这篇文章,其实我想讲的是LUA,这个非常有名的脚本语言,在这里,作者用它来模拟浏览器的行为,这在我们的日常生活中也是经常要碰到的,举个例子,一个页面上有个PDF要下载,夸张点被分割成了100份,你怎么办?一个一个点?当然不是,任何一个真正的程序员都会发挥它那懒惰而又爱动脑筋的品质,这里,LUA给了我们一个示范的解决方案,在以后的网络生活中碰到这样的问题,如何去解决。--------------------------------------------------------------------------------------


导读:
  喜歡抓電子書的人應該都知道 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 下的 Modules/webhost,
  並將檔名命名為 itpub.lua
  接著在 Modules/config.lua 加入下面的片段
  freegrab.MODULE["itpub.net"]??? ??? = {??? name="ITPUB", cat="webhost",
   ??? ??? ??? ??? ??? home="http://www.itpub.net",
   ??? ??? ??? ??? ??? charset="UTF-8",
   ??? ??? ??? ??? ??? fnformat="$url.$ext"}
  如此就完成 ITPub 腳本的擴充,下面畫面是運作過程
  
  
  ps. 其實我原本想用 SmartGet 來達成我的需求,可是新版已經將腳本編碼,似乎不想讓別人擴充,我就放棄他了~

本文转自
http://chuiwenchiu.spaces.live.com/Blog/cns!CA5D9227DF9E78E8!1564.entry?wa=wsignin1.0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值