用Delphi怎樣給一個現有網頁內的一個文本框賦值或提取文本框的文本
例如:現有一個需要錄入學生資訊的網站,我現有一大批學生資訊需要錄入(幾萬條),但不想一個一個錄入,想寫個程式讓它能自動錄入這些資訊。當學生資訊錄入后,網站會返遺學生的學歷等資訊(也在是文本框里面的),這個程式也能獲取這些文本框里面的文本。
本人嘗試過模擬按鍵 + 剪貼板 的方法實作,但 剪貼板經常會出現 "Cannot open Clipboard" 這個錯誤,無法解決,請問怎樣可以實作在現有網頁內的一個文本框賦值或提取文本框的文本呢? 最好有代碼實體,請賜教,萬分感謝!!
uj5u.com熱心網友回復:
作過嘗試,只能手動方式。樓主提出的自動化的示見過。方法:
1、滑鼠移動到獲取瀏覽器文本框,獲取的句柄。
2、通過句柄獲取文本資訊;讀入粘貼板。
3、寫入資料庫。
注意,有的網站,將文本框做成影像形式,是讀不出文本資料的。
uj5u.com熱心網友回復:
用delphi的瀏覽器控制元件,打開網頁,這樣可以呼叫或者執行JS腳本,具體怎么做,你自己分析網頁里面的HTMLuj5u.com熱心網友回復:
用webbrowser打開你的網站WebBrowser1.Navigate('http://www.baidu.com');
WebBrowser1.OleObject.Document.getElementById('abc').value:='abc';
ShowMessage(WebBrowser1.OleObject.Document.getElementById('abc').value);
uj5u.com熱心網友回復:
getElementById里填寫的id就是網頁那個輸入框的iduj5u.com熱心網友回復:
function TForm1.Keystroke(S1:String): String; //-----------模擬按鍵操作var
tempStr:String;
begin
Clipboard.AsText :=S1;
setcursorpos(pt.X ,pt.Y );
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //-----------左擊滑鼠
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
sleep(50);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //-----------左擊滑鼠
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
keybd_event(VK_CONTROL,0,0,0);
keybd_event(86,0,0,0);
keybd_event(86,0,KEYEVENTF_KEYUP,0); //Ctrl + V
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
setcursorpos(pt.X+30 ,pt.Y + 50);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); //-----------左擊滑鼠
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
sleep(StrToint(Edit2.Text)); //暫停
keybd_event(VK_TAB,0,0,0);
keybd_event(VK_TAB,0,KEYEVENTF_KEYUP,0); //------------TAB
sleep(100);
keybd_event(VK_CONTROL,0,0,0);
keybd_event(67,0,0,0);
keybd_event(67,0,KEYEVENTF_KEYUP,0); //Ctrl + C
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0);
sleep(100);
Result:=Clipboard.AsText;
end;
uj5u.com熱心網友回復:
樓主想的有點復雜了!3樓的方法可行!直接執行js代碼!uj5u.com熱心網友回復:
這就是一個批量采集的作業, 除了技術問題, 還有效率問題.轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/67831.html
標籤:語言基礎/算法/系統設計
上一篇:二進制字串和浮點數互相轉換
