2010-07-21 106 views
1

我做了一點(或者至少我希望它很少)贊成一個朋友,但在10年左右沒有使用過德爾福......並且我的搜索還沒有很多使用打開網址使用Delphi

我想要做的是獲取一個URL,然後解析HTML來找到他需要的信息。我希望這樣(在Python中)fileHandle = urllib2.urlopen(urlStr)和fileHandle會收到我請求的頁面的HTML。我發現所有的例子打開默認瀏覽器,但我使用Linux,與拉撒路和免費Pascal,他使用的是德爾福7(如果我沒記錯的話),如果這一切都很重要。

謝謝。

+0

如果它是一個單頁上一個炮打響,爲什麼不使用你的瀏覽器,並保存HTML文件,然後以後進行分析。 – 2010-07-21 16:53:36

回答

6

使用Indy,你可以使用TidHttp組件。

var 
    http : TidHttp; 
    page : String; 
begin 
    http := TidHttp.Create(nil); 
    try 
    page := http.get(URL); 
    finally 
    http.Free; 
    end; 
end; 

如果您希望使用其他格式的內容並需要傳遞其他信息,則獲取若干重載版本。

+0

請注意,這也適用於拉撒路,只是作爲一個經驗法則,非窗戶FPC只適用於Indy10。 – 2010-07-23 12:13:26

0

選項:

  1. 呼叫的wget(你將必須安裝在Windows上)頁面下載到一個文本文件,然後打開。

  2. 如果您想在Delphi中完全使用Indy或Synapse,請使用Indy或Synapse。

(我總是用Synapse做這種類型的東西)。

0

在您的應用中使用TWebbrowser。 您可以獲取文本框的值或單擊頁面中的按鈕。

var 
    ovElements: OleVariant; 
    i: Integer; 
begin 
    ovElements := WebBrowser1.OleObject.document.Forms.item(0).elements; 
    for i := 0 to (ovElements.Length - 1) do 
    if (ovElements.item(i).Name = 'ASPxButton1') 

     (ovElements.item(i).Name = 'ASPxButton1') then 
     ovElements.item(i).Click; 

OR

WebBrowser1.OleObject.document.Forms.item(0) 
     .elements.item 
     ('ASPTEXTBOXNAME').value;