【问题标题】:Open URL using Delphi使用 Delphi 打开 URL
【发布时间】:2010-07-21 15:54:44
【问题描述】:

我正在为朋友做一点(或者至少我希望它是一点点)帮助,但已经有 10 年左右没有使用 Delphi 了……而且我的搜索没有多大用处

我要做的是获取一个 URL,然后解析 HTML 以找到他需要的一些信息。我希望像这样(在 python 中)fileHandle = urllib2.urlopen(urlStr) 和 fileHandle 会收到我请求的页面的 HTML。我找到的所有示例都打开了默认浏览器,但是

我正在使用 linux、Lazarus 和 Free Pascal,如果这很重要的话,他正在使用 Delphi 7(如果我没记错的话)。

谢谢。

【问题讨论】:

  • 如果是单页截图,何不使用浏览器,保存html文件,以后再分析。

标签: delphi freepascal lazarus


【解决方案1】:

使用 Indy 你可以使用 TidHttp 组件。

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

如果您想要其他格式的内容并需要传递额外的信息,Get 有几个重载版本。

【讨论】:

  • 请注意,这也适用于 Lazarus,仅作为经验法则,非 Windows FPC 仅适用于 Indy10。
【解决方案2】:

选项:

  1. 调用 wget(您必须在 Windows 上安装)将页面下载到文本文件,然后打开。

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

(我一直使用 Synapse 来做这种事情)。

【讨论】:

    【解决方案3】:

    在您的应用中使用 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;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-27
      • 1970-01-01
      • 1970-01-01
      • 2020-02-23
      • 1970-01-01
      • 2014-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多