精華區beta CYHS-3rd-308 關於我們 聯絡資訊
新手寫GDL遇到的問題 go:http://www.zshare.net sleep(3) GetFile() SetFileValue:file=***File*** ClickCheckBox:TOS,1 ClickButton:..... 請問ClickButton 這裡要填入什麼?我拿 最多人使用的zshare 來練習~~ 但卡在這裡... 一步一步來了~~後面可能會有更多的問題,還請各位幫幫忙了...感激不盡~~ 兩位的回答很無言=_=. 網頁的原始碼就是html...是在裝傻嗎@@呵呵 elgkai8兄裝的很明顯^^ AddWebHtml:<textarea name="download_link" rows="1" cols="100"></textarea> AddWebHtml:<textarea name="delere_link" rows="1" cols="100"></textarea> AddWebHtml是nt指令...看教學..後面接的是html語言 RunScriptNext:var v = document.all.tags('BODY').item(0).innerHTML ; RunScriptNext是nt指令...看教學..後面接js語言 .. 定義 v = document.all.tags('BODY').item(0).innerHTML ..就是 v的內容就是你看到的原始碼 document.all.tags('BODY').item(0).innerHTML 為什麼是原始碼..請看教學網頁..有 很清楚的解答喔!!!! 在附錄篇那裡吧 RunScriptNext:document.all('download_link').value = v.match(/dispBox\('img_remove', '([^']+)', '([^']+)/)[1] ; v.match(XX)是說在原始碼v裡面找到XX的值..存入 網頁中name叫做 "download_link" 欄位的值! document.all('download_link').value ==> <textarea name="download_link" rows="1" cols="100"></textarea> RunScriptNext:document.all('delere_link').value = v.match(/dispBox\('img_remove', '([^']+)', '([^']+)/)[2] ; 同上意思 ItemToVariable:download_link,***Variable2*** ItemToVariable NT指令..把name=download_link的 值..存入***Variable2*** ,***Variable2***是nt的變數,自己用.可以用到***Variable99*** ItemToVariable:delere_link,***Variable3*** 同上 output:下載連結是 ***Variable2*** output:刪除連結是 ***Variable3*** 這兩行輸出,, exit() 跳開........ 補充.....至於match裡面的..請上gogle打 正規表示法 ....這部份我比較弱...無法解 釋 這邊有張表可以參考 http://neural.cs.nthu.edu.tw/jang/books/webprog/03jscript/reg3.asp?SessionCount=15 原帖由 sun_0923 於 2008-05-29 22:12 發表 empire 大 ,第10帖所說的那些 其實可以代入任何有 download link 、delete link 對吧? 因為我ZS 後半段 跑到 RunScriptNext:document.all('download_link').value = v.match(/dispBox\('img_remove', '([^']+ ... 不是啊.... match() 裡面的判斷要 改.看空間的link在哪邊.前後有哪些字去改... BDG是因為 下載連結是在原始碼中 dispBox('img_remove', 'XXXXXXXX 接原始碼 ....所以才寫這樣 你對一下原始碼.找一下 dispBox('img_remove',後面接的東西就知道了.......[1]是 指找到的第一個()裡面的東西.. [2]就是第2個()裡面的東西... zs的我看原始碼是 <td bgcolor="#F7F9FE"><font color="#666666"><a href="http://www.zshare.net/download/1277710636d682aa/"> 跟 <td width="71%"><input name="field12" type="text" class="input2" onClick="javascript:selectAll(this);" value="http://www.zshare.net/delete.html?12777106-ffbbfcb832cc56028f23ab16477986c2" size="50"></td> 所以那兩行應該是這樣吧.match()的跳脫在js我比較不會......試試看吧.. RunScriptNext:document.all('download_link').value = v.match(/F7F9FE"><font color="#666666"><a href="([^"]+)/)[1] ; RunScriptNext:document.all('delere_link').value = v.match(/"71%"><input name="field12" type="text" class="input2" onClick="javascript:selectAll\(this\);" value="([^"]+)/)[1] ; 呼 光是 bdg ,match(/dispBox('img_remove', 後面都不知道怎麼來了 >< '([^']+)', '([^']+)/)[1] ; 看出一點東西了~~ ^ 這個符號 是個代碼之類的吧~~~ empire 大 ZS 照第14帖改過了 還是不行.. 我試過了javascript:selectAll(this);" value='([^']+)/)[1]; 也是不行... 剛試了一下..用NT抓到的原始碼跟我一開始用ie看到的不一樣.所以抓不到. 正確在nt看到的原始碼是 <TD bgColor=#f7f9fe><FONT color=#666666><A href="http://www.zshare.net/download/127796915a72e565/" <TD width="71%"><INPUT class=input2 onclick=javascript:selectAll(this); size=50 value=http://www.zshare.net/delete.html?12779691-041179be25ed914aa063b3acf0921868 name=field12></TD> 所以那兩行是 RunScriptNext:document.all('download_link').value = v.match(/<TD bgColor=#f7f9fe><FONT color=#666666><A href="([^"]+)/)[1] ; RunScriptNext:document.all('delere_link').value = v.match(/<TD width="71%"><INPUT class=input2 onclick=javascript:selectAll\(this\); size=50 value=([^\s]+)/)[1] ; 我把顏色標起來...同顏色的就是一樣的地方!!... 黃色的那個([^"]+)跟([^\s]+).就是原始碼中黃色的部份!!! 為什麼的話...請看我前一篇有帖一個要你參考的網頁!! 還有你的 我試過了javascript:selectAll(this);" value='([^']+)/)[1]; 也是不行 ... .. 那是因為原始碼中有一堆這樣的東西....... 這部份我不知道怎麼取第幾個... 所以你看我綠色的那些字....你去原始碼找一定只找的到一行相同的.不會有第2行跟他 一樣!!..這樣才找的到! 再來那個後面的[1] 請硬記=_= 如果你用[0]抓到的就是 <TD bgColor=#f7f9fe><FONT color=#666666><A href="http://www.zshare.net/download/127796915a72e565/" 這一整行. .但我們只要黃色的地方..就是([^"]+).裡面的東西..所以後面是接 [1] 看清楚一點.只有大小寫不同嗎? ""也不見了...所以比對不出來 載match() 裡面遇到的特殊符號..前面都要加一個跳脫符號 \ 因為要比對 ( ) 不然 會變成match(()) js的語法就錯了.. 所以要match(\(\)) 才是比對 (跟) ...繞口 令=_=..想一下吧.. \s 跟\ 在 http://neural.cs.nthu.edu.tw/jang/books/webprog/03jscript/reg3.asp?SessionCount=15 這網頁裡面都有..看一下 再說清楚一點好了... 在比對裡面match(xx(yy)xx).. 要取出值就是取 (yy)裡面的值 .. 比方 v.match("abcdf(this)") 這樣他是去找 v裡面的內容有沒有哪一行是abcdef 又連著this 就是要比對 abcdefthis 這樣.. 現在原碼碼中本來就是(this) 所以我們要找的應該是abcdef(this)這樣的內容.... 所以在比對裡面你要跟它說this的前後跨號是要比對的字元..而不是要取()裡面的字.. 所以才要變成 v.match("abcdf\(this\)") ([^\s]+)/) 要取出...任何字....但不要跟著一個空白字元..... 換句話說就是遇到 空白字元就停了!! () == 要取裡面的 [^] == 不包含 \s == 空白 =_=說要你去看網頁.........我又把他寫出來了@@