• 提取网页中的所有链接、点击第 n 个链接 回复 "刘丽" 的问题


    问题来源: http://www.cnblogs.com/del/archive/2009/01/08/1370907.html#1425544

    本例效果图:



    代码文件:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, OleCtrls, SHDocVw;
    
    type
      TForm1 = class(TForm)
        WebBrowser1: TWebBrowser;
        ListBox1: TListBox;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    {控件初始化}
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      WebBrowser1.Align := alTop;
      WebBrowser1.Navigate('http://del.cnblogs.com');
      ListBox1.Align := alClient;
    
      Button1.Caption := '提取网页所有链接地址';
      Button2.Caption := '提取网页所有链接文本';
      Button3.Caption := '模拟点击指定的链接';
    end;
    
    {提取网页所有链接地址}
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
    begin
      ListBox1.Clear;
      for i := 0 to WebBrowser1.OleObject.document.anchors.Length - 1 do
        ListBox1.Items.Add(WebBrowser1.OleObject.document.anchors.item(i).href);
    end;
    
    {提取网页所有链接文本}
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i: Integer;
    begin
      ListBox1.Clear;
      for i := 0 to WebBrowser1.OleObject.document.anchors.Length - 1 do
        ListBox1.Items.Add(WebBrowser1.OleObject.document.anchors.item(i).innerText);
    end;
    
    {模拟点击指定的链接}
    procedure TForm1.Button3Click(Sender: TObject);
    begin
    //  WebBrowser1.OleObject.document.anchors.item(0).click; {假如是第一个链接}
      if ListBox1.ItemIndex <> -1 then
        WebBrowser1.OleObject.document.anchors.item(ListBox1.ItemIndex).click;
    
      ListBox1.Clear;
    end;
    
    end.
    

    窗体文件:
    object Form1: TForm1
      Left = 0
      Top = 0
      Caption = 'Form1'
      ClientHeight = 229
      ClientWidth = 626
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'Tahoma'
      Font.Style = []
      OldCreateOrder = False
      OnCreate = FormCreate
      PixelsPerInch = 96
      TextHeight = 13
      object ListBox1: TListBox
        Left = 8
        Top = 127
        Width = 185
        Height = 130
        ItemHeight = 13
        TabOrder = 4
      end
      object WebBrowser1: TWebBrowser
        Left = 8
        Top = 8
        Width = 300
        Height = 113
        TabOrder = 0
        ControlData = {
          4C000000021F0000AE0B00000000000000000000000000000000000000000000
          000000004C000000000000000000000001000000E0D057007335CF11AE690800
          2B2E126208000000000000004C0000000114020000000000C000000000000046
          8000000000000000000000000000000000000000000000000000000000000000
          00000000000000000100000000000000000000000000000000000000}
      end
      object Button1: TButton
        Left = 451
        Top = 127
        Width = 151
        Height = 25
        Caption = 'Button1'
        TabOrder = 1
        OnClick = Button1Click
      end
      object Button2: TButton
        Left = 451
        Top = 158
        Width = 151
        Height = 25
        Caption = 'Button2'
        TabOrder = 2
        OnClick = Button2Click
      end
      object Button3: TButton
        Left = 451
        Top = 189
        Width = 151
        Height = 25
        Caption = 'Button3'
        TabOrder = 3
        OnClick = Button3Click
      end
    end
    
  • 相关阅读:
    java Future模式的使用
    Objects源码解析
    VUE优秀的组件库总结
    数据库的一致性读,赃读,多线程与赃读,ACID,UNDO
    线程基础,多线程架构,高并发,线程安全基础知识
    程序员必备的开发利器
    spring security 实现登录验证码及记住我
    springboot 集成 spring security 自定义登录
    ELK整合SpringBoot日志收集
    ElasticSearch整合SpringBoot的API操作
  • 原文地址:https://www.cnblogs.com/del/p/1371867.html
Copyright © 2020-2023  润新知