網頁控制相關

舉凡網頁中看的到的,不管是要填、要取、要等、要按、要選等處理,就看這單元囉…


進網頁的前置作業處理

BreakOpenInternet()                     斷開網路連線,此指令有限定使用條件 (1.需用撥號上網(ADSL也算撥號)、2.IE 選項->連線->需設[永遠使用預設的連線])

SetWebProxy:proxy 值                 格式為 proxy:port。指動態變更你網頁之proxy 設定,可搭配SpotStrToVariable 指令來完成隨機代入proxy的效果

註1

DisableScriptError:?                      參數?=1 時表示攔截網頁所產生之錯誤訊息,0則反之 (程式內定為0)

SetNoFrames:1                              設定強制無框架處理命令。若設為0則反之。(常應用於 1.該網頁會動態新增框架頁而導致程式誤判  2.要處理框架組頁面上之欄位時)

ShowWebImage:?                          設定頁面上圖片之載入。當參數?=0,則不載入圖片, 1則為戴入、2為還原預設值

KillCookie:部份網址                    刪除快取檔(含離線記錄產生之快取)。指令內定會自動延遲一秒,可視情況用來取代需登入空間之登出連結


連結網頁之相關判斷處理

go:網址                                                                              開啟某網頁

PostData:輸出串,參照頁,Content-Type                          依參數值在WebBrowser中直接發送POST請求

註 2

GoBack()                                                                            相當於按下【上一頁】的效果

GoNext()                                                                            相當於按下【下一頁】的效果

WebRefresh()                                                                     相當於按下【重新整理】的效果 (常應用於需即時更新網頁上的記錄)

FindWebText:文字串(可代變數)                                        尋找Web 頁面上的文字(含欄位值),其傳回內容可由 IFYes 或 IfNo 來加以判定
IFYes/IfNo:標記名稱                                                          若傳回真/傳回假 則此條件成立,並前往標記處

 FindHtmlText:欲尋找的字串(含html碼)                          尋找Web 頁面原始檔裏的字串,其傳回內容可由 IFYes 或 IfNo 來加以判定
 IFYes/IfNo:標記名稱                                                         若傳回真/傳回假 則此條件成立,並前往標記處

Wait:部分連結(連結文字),秒數,標記                                在秒數內沒看到該連結,就往標記處移

WaitWebText:網頁中某文字串,秒數,標記                        在秒數內沒看到設定之字串,就往標記處移

WaitHtmlText:網頁中某原始碼字串,秒數,標記               在秒數內沒看到設定之字串,就往標記處移

註 3

網頁開啟之後續相關處理

***HostLink***                                           取得目前所在網頁的主機連結

***Url***                                                     取得目前所在網頁的URL

IndexInput:i,值                                              把資料填入網頁中第i個input中。常用於欲填入"無欄位名稱"之格子。(排第i個可從debuglog 欄中查 INPUT 開頭的數字)

SetFieldValue:欄位名稱=值                          對某一欄位填入值(File欄位除外)。對於多行式(textarea)的欄位填入,則可利用 <Crlf> 來作為換行字符

SetFileValue:欄位名稱=值,i                          適用屬性為唯讀之欄位填入(如File欄位)。其中第三個參數仍指陣列index,為選擇性參數。i = 0、1、2 …

註 4

ItemToVariable:欄位名稱,***Variable?***              將指定名稱的欄位值取出並存於自定變數中(參數一可用 index 值來下,但要加[] ,從1開始喔!!)

WebStrToVariable:字串1,字串2,***Variable?***,i      用於抓取網頁中,落於設定之兩段字串間的資料,並存入自定變數中。而參數 i 指取網頁中符合條件式的第 i 個值

WebStrToList:字串1,字串2,->i(1~6)                           用於抓取網頁中,所有落於設定之兩段字串間的資料,並存入指定清單中。->i(1~6) ,則表示取到之值存於分別為
                                                                                      帳.檔.備.郵.輸出.暫存 清單

HttpStrToVariable:網址,字串1,字串2,***Variable1***,i         取得遠端網頁中,落於字串1、2間的資料。i 為選擇性參數,指符合設定條件的第i個(參數1、2以遠端原始碼為準)

FindHttpText:網址,字串                                              判斷遠端網頁中是否有符合設定之字串。該指令下一行可接 IfYes/IfNo 來依判斷結果移往標記處

ClickButtonNext:欄位名稱                                           按下某一個按鈕並接著執行下一個命令,其代表的是無換頁效果的一個click動作
ClickButton:欄位名稱或value                                      按下某一個按鈕後,程序會暫停,直到頁面轉換完成後,才會再執行下一個命令

Select:欄位名稱,第i個或下拉文字                              指選取下拉式選單。i=?、0、1、2… (若i=?, 則表示由程式自動產生一個亂數)
SelectMult:欄位串值(各欄位間以逗號分隔)             指由程式來自動隨機選取頁面中符合欄位名的所有下拉式選單

CheckAllYes()                                                               網頁中所有看到的的正方型框框(type=checkbox),全部核選起來
CheckAllNo()                                                                網頁中所有看到的的正方型框框(type=checkbox),全部取消核選
ClickCheckBox:欄位名稱,?,[i]                                      專用於核選type=checkbox 之欄位(正方型要你勾的那種)。參數?=1時表核取,為0則為取消核取。[i] 適用於陣列

註 5

RADIOYES:欄位名稱,第i個                                     指點選 type=radio 之欄位(圓圈型狀要你點項選的那種)。 i=0、1、2 … 指該欄位下的第i個 (若參數i=?, 則程式自動點選)

SetFieldFocus:欄位名,位移數值(需加正負號)        以參數欄位為基準位置,再來作位移。位移數值"+"則往下,"-" 則往上。(常應用於搭配 Prompt 來完成手動輸入認証碼)

SetTextFocus:欄位名,位移數值(需加正負號)        用法同SetFieldFocus指令,只是改以網頁上的文字為基準 (兩指令皆不適用於框架頁面)

ClickImage:src值,i                                                      專用於點擊圖片。限制: Tagname 需為 input 、type 需為 image (i 為選擇性參數,指圖片index值,僅限於無框架時使用)

PostForm:表單名稱或表單的順序                           如 [0] 則表示送出第 0 個表單

AddWebHtml:網頁碼                                                於執行窗中即時新增一段網頁碼。如 <input type=text name="keyout" value=***File*** >                 

<script></script>                                                       宣告一段自定之 Script ,其輸出結果會存於 ***ScriptOut*** 中,供程式任意調用

註 6
RunScript:                                                                  執行一組自定的有換頁動作之Script,等待頁面轉換完成後,才會接著執行下一個命令

RunScriptNext:                                                           執行一組自定的無換頁動作之Script,執行完會馬上接著進行下一行指令

註 7

網頁裏連結相關處理

ClickLinkNext:連結文字或連結的一部份                                                                             點擊符合參數一之連結後,立即往下個指令走(專用於點擊用無換頁效果的連結)

ClickLink:連結文字或連結的一部份,標記名(選擇性參數)                                                 點擊符合參數一之連結,並將程序移往標記處。若無設定標記,則程序往下行走

LinkToVariable:連結文字的一部份,連結的一部份,***Variable?***                                   將網頁中第一個符合過濾參數之完整連結存於自定變數中

例: http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=888 為一超連結,其連結文字為 【我愛小美】
若要取得如上述的完整連結於自定變數2中,則指令用法如下:
LinkToVariable:我愛小美,123.php?keyout,***Variable2***

 

LinkValueToVariable:連結文字的一部份,連結的一部份,***Variable?***                           將網頁中第一個符合所設過濾參數連結之部份資料存於自定變數中

例: http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=888 為一超連結,其連結文字為 【我愛小美】
若我們要取該連結中的 other 值放入自定變數1中來用,則指令用法如下:
LinkValueToVariable:我愛小美,other=,***Variable1***
此時,***Variable1*** 的值將為 other=OK
 

 

HostToVariable:連結文字的一部份,連結的一部份,***Variable?***                                     將網頁中第一個符合所設過濾參數連結之HOST 值存於自定變數中

例: http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=888 為一超連結,其連結文字為 【我愛小美】
若我們要取該連結中的 HOST 值放入自定變數1中來用,則指令用法如下:
HostToVariable:我愛小美,123.php,***Variable1***
此時,***Variable1*** 的值為 http://www.kimo.com.tw

註 8

 

進階的取連結指令

 

SetAutoOutput:某字串,指定輸出至自定變數(選擇性參數)    

這個指令說白話點,就是抓取IE訊息提示列之值!!    當頁面轉換時,常會有我們看的到但抓不到的連結。

尤其是那種網頁轉址之檔案真實位址。當該連結符合我們下的參數值時,程式便會中止該連結的執行,只取它的值。

若不符合才會有執行該頁面的轉換動作。當取得符合條件之連結時,若沒下第二個參數就會直接記錄於【輸出清單】中,反之則會記錄在所指定之自定變數內。

(註:若同時想下多個關鍵字時,則可用符號"|"來隔開即可)



例:
我傳了一個SONY_VAIO_ScreenSaver.exe 的檔案到 FileFront 空間去。得到一個下載連結 http://files.filefront.com//;6503677;;/
於是我開了網頁要去下載,發現它的連結長成下面這樣子~
http://dodownload.filefront.com/6503677//c903c1c3d83ec5a364a1e293f2021c3af9f01802947aeb1128e9e478b6687190515cd61a4f7b7935
這種看不到檔案名稱的連結,就叫轉址連結!

那我能不能利用它在轉址的同時,把真實連結給取下來,再放到其它的下載軟體,如flashget 來下載呢?
此時就要靠 SetAutoOutput  這個指令囉~

SetAutoOutput:SONY|VAIO
go:http://dodownload.filefront.com/6503677//c903c1c3d83ec5a364a1e293f2021c3af9f01802947aeb1128e9e478b6687190515cd61a4f7b7935
flashget:
EXIT()

當真實連結有包含我下的兩個條件其中之一時,NT 便會將它取下並存放於【輸出清單】中 ~
但這種真實連結或許有時效性,所以我再搭配NT的調用flashget功 能來即時下載這個檔案~

下面附上我在寫此教學時,取到的真實連結~!
http://38.118.213.240/khtgxghepk+/personal/anony6/2007/8/18/1168396704-5ce58215854f6014e678ca6a458085b0/SONY_VAIO_ScreenSaver.exe

 

GetFileLink:連結文字(連結)的一部份,欲輸出的連結表示碼->i

這個指令主要的用意是在一次取得網頁中所有符合過濾條件的連結,並允許加以調整成需要的型態來輸出

                                                                                        只能用於 GetFileLink: 裏面的唯四變數

***TitleName***

 自網頁中符合參數1之連結文字裏,取得參數1(含)至最後一字元的值(若中間有符號"|",則取至 "|"之前一字元)

***LinkHref***

 自網頁中取得符合參數1之完整連結

***LinkSrc***

 自網頁中取得符合參數1之 src 值(專用於取相本空間之連結 )

參數字串=??

 網頁中符合參數1之完整連結裏,取得"參數字串"到"&"中間之值再代入??中。若參數字串後面無"&",則取至連結之最後一字元。
  (?? 亦可同時使用於不同之"參數字串"值中)
  註1:->i  為選擇性參數,其值為 ->1 到 ->6,分別代表取得之連結表示碼欲存往 帳、檔、備、郵、輸出、暫存清單中。若不指定則預設為 ->5,即輸出清單!!

  註2:除了上述附屬於GetFileLink指令內的唯四變數外,其餘的變數亦可直接用於 GetFileLink: 中,例如 ***HostLink***、***Variable?*** 等

 

【應用實例一】 在一個有一堆連結的頁面中,我們只想抓取符合連結文字為【我愛小美.part.00?】的所有連結來下載。

寫法如右:   GetFileLink:我愛小美,***LinkHref***|***TitleName***

http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=123 為一超連結,其連結文字為 【奇摩信箱】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=888 為一超連結,其連結文字為 【keyout123_我愛小美.prat.001】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=123 為一超連結,其連結文字為 【天氣概況】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=889 為一超連結,其連結文字為 【keyout887_我愛小美.prat.002】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=896 為一超連結,其連結文字為 【keyout802_我愛小美.prat.003】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=533 為一超連結,其連結文字為 【keyout456_我愛小美.prat.004】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=123 為一超連結,其連結文字為 【即時新聞】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=234 為一超連結,其連結文字為 【keyout547_我愛小美.prat.005】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=463 為一超連結,其連結文字為 【keyout662_我愛小美.prat.006】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=123 為一超連結,其連結文字為 【奇摩聊天室】
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=123 為一超連結,其連結文字為 【拍賣】
………


第一個參數我們當然會取 "我愛小美" 來作為關鍵字
再來第二個參數,就直接下 ***LinkHref*** ,這裏它代表的就是網頁中,符合第一個參數(連結文字為"我愛小美")條件下的完整連結
最後還需補一個檔名,也就是直接下 ***TitleName*** ! 這裏它代表的是網頁中,符合第一個參數條件下之完整連結文字裏,從參數1(含)開始至最後一字元的值。
所以只會取到 "我愛小美.part.00?",前面的 keyoutXXX 就不會取進來。下面就是最後最出來的連結~

http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=888|我愛小美.prat.001
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=889|我愛小美.prat.002
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=896|我愛小美.prat.003
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=533|我愛小美.prat.004
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=234|我愛小美.prat.005
http://www.kimo.com.tw/123.php?keyout=good&andy78901=nice&other=OK&todolong=463|我愛小美.prat.006



【應用實例二】第二個參數也可直接用 "文字串" 加上 "某些我們需要的變數值" 來表示。此法常應用於需使用二段式連結的情況:

比如說今天我們想要取得之連結,並非就是頁面上的連結,而是需要再點進去才能得到的連結,即要取二段式的連結。此情況常見於取郵空附件連結上。
而且重點是這兩種連結有相關程度的關連。(例如郵空之郵件列表連結與其附件連結都有一定的相同部份)

詳細原理請參考實戰教學裏的 【郵空下載&轉寄】

其中,參數二我們直接將轉信之連結,以下面字串來表示。其中需要的未知參數 MsgId 之值我們直接於郵件列表中之連結來取得。

GetFileLink:信件附檔開頭名稱,***HostLink***/ym/Compose?box=Inbox&MsgId=??&&inc=&Search=&YY=&order=down&sort=date&pos=0&view=a&head=b&FWD=1&fwopt=attach,***TitleName***

Free Web Hosting