新手寫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 == 空白
=_=說要你去看網頁.........我又把他寫出來了@@