我的需求是這樣的:
一、delphi呼叫百度進行搜索。
二、回傳搜索結果(十個也好,二十個也好,全部也好,您只要幫我實作)
不勝感激!
uj5u.com熱心網友回復:
用WebBrowser,如:procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('www.baidu.com');
end;
uj5u.com熱心網友回復:
樓主這個應該是呼叫百度去執行搜索。模擬點擊是把?前幾天看了bdmh版主的博客里面說的 ,希望對樓主有用。
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
Document: IHTMLDocument2;
Element: IHTMLElement;
Anchors: IHTMLElementCollection;
sLink: string;
begin
//查找網易新聞頁面鏈接
sLink := 'http://news.163.com/';
Document := Webbrowser1.Document as IHTMLDocument2;
if Assigned(Document) then
begin
Anchors := Document.Get_links;
//遍歷所有鏈接
for i := 0 to Anchors.length - 1 do
begin
Element := Anchors.item(i, varempty) as IHTMLElement;
//找到指定鏈接
if Assigned(Element) and (UpperCase((Element as IHTMLAnchorElement).href) = UpperCase(sLink)) then
begin
//執行點擊
Element.Click;
Break;
end;
end;
end;
end;
當然這這是執行點擊的代碼。你還要執行往輸入框寫文字的。 你自己好好補充啊
if Succeeded(Dispatch.QueryInterface(IHTMLInputElement,HTMLInputElement)) then
begin
With HTMLInputElement do//單行文本
begin
if UpperCase(Type_)='TEXT' then//判斷輸入框型別;
begin
if trim(basedata.SysInfo.strWebadvKeyWord)<>'' then
begin
if (Name=copy(trim(basedata.SysInfo.strWebadvKeyWord),1,pos(',',trim(basedata.SysInfo.strWebadvKeyWord))-1))
or(Name=copy(trim(basedata.SysInfo.strWebadvKeyWord),pos(',',trim(basedata.SysInfo.strWebadvKeyWord))+1)) then
begin
Value:=strkeyword;
exit;
end;
end;
end;
end;
end
uj5u.com熱心網友回復:
第一個要求不難。第二個要求,不知道要回傳怎么樣的結果?純鏈接還是百度搜索顯示的那個樣子的結果?uj5u.com熱心網友回復:
100分太少了uj5u.com熱心網友回復:
學習 謝謝分享uj5u.com熱心網友回復:
delphi板塊越來越水了,整天都是這些玩意兒。。。uj5u.com熱心網友回復:
WebBrowser1.Navigate('www.baidu.com');WebBrowser1.OleObject.document
會JS吧,先去看HTML 頁面每一個元素都可獲取,可以操作。很簡單
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/108830.html
標籤:VCL組件開發及應用
上一篇:關于編碼問題?
