这两个问题的实现原理其实是差不多的,所以放在一起介绍,单元MSHtml封装了我们需要的功能。

首先,新建一个DELPHI工程,在USES部分添加MSHtml单元的引用。

然后,在窗体上放置一个TWebBrowser控件和四个按钮。

最后,编写四个按钮的响应代码:

1. 自动提交网页表单

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.baidu.com');
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  doc: IHTMLDocument2;
  oleObj: OleVariant;
begin
  doc := WebBrowser1.Document as IHTMLDocument2;
  if doc = nil then Exit;
  oleObj := doc.all.item('wd', 0) as IHTMLElement2;
  //网页有一个名为“wd”的文本框:<input type="text" name="wd" id="kw" maxlength="100">
  oleObj.Value := 'Delphi'; //为文本框赋值
  oleObj := doc.all.item('su', 0) as IHTMLElement2;
  //网页有一个ID为“su”的按钮:<input type="submit" value="百度一下" id="su">
  oleObj.Click;  //点击按钮,提交表单
end;

2. 获取框架网页源码

procedure TForm1.Button3Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://含有框架的网页URL');
end;

procedure TForm1.Button4Click(Sender: TObject);
var
  doc, framedoc: IHTMLDocument2;
  frame_dispatch: IDispatch;
  ole_index: OleVariant;
  i: Integer;
begin
  doc := WebBrowser1.Document as IHTMLDocument2;
  if doc = nil then Exit;
  for i := 0 to doc.frames.length - 1 do
  begin
    ole_index := i;
    frame_dispatch := doc.frames.item(ole_index);
    if frame_dispatch = nil then Continue;
    framedoc := (frame_dispatch as IHTMLWindow2).document;
    if framedoc = nil then Continue;
    ShowMessage(framedoc.body.innerHTML);
  end;
end;

3. 获取网页所有链接

procedure TForm1.Button1Click(Sender: TObject);
var
  elem: IHTMLElement;
  coll: IHTMLElementCollection;
  i: integer;
  url, title: string;
begin
  coll := (WebBrowser1.Document as IHTMLDocument2).all;
  coll := (coll.tags('a') as IHTMLElementCollection);
  for i := 0 to coll.Length - 1 do
     begin //   循环取出每个链接
      elem := (coll.item(i, 0) as IHTMLElement);
      url := Trim(string(elem.getAttribute(WideString('href'), 0)));
      title := elem.innerText;
      ShowMessage(Format('链接标题:%s,链接网址:%s', [title, url]));
     end;
end;

Delphi自动提交网页表单和获取框架网页源码相关推荐

  1. python自动提交网页表单_python自动提交表单数据库

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. PHP 通过fsockopen函数获取远程网页源码

    最新PHP 通过fsockopen函数获取远程网页源码 以下是三零网为大家整理的最新PHP 通过fsockopen函数获取远程网页源码的文章,希望大家能够喜欢! 通过该函数可以获取指定端口的页面源码, ...

  3. python 爬虫源代码-Python爬虫学习之获取指定网页源码

    本文实例为大家分享了Python获取指定网页源码的具体代码,供大家参考,具体内容如下 1.任务简介 前段时间一直在学习Python基础知识,故未更新博客,近段时间学习了一些关于爬虫的知识,我会分为多篇 ...

  4. 怎样控制键盘按键自动填写网页表单

    浏览器中使用模拟键盘按键填写网页表单,不但可以完成数据输入,输入时还能真实地触发键盘元素绑定的键盘事件. 打开木头浏览器的工具菜单,进入项目管理容器,创建"填写内容"步骤,并打开百 ...

  5. VC提交网页表单-自动评论留言(1)

    前段时间,仔细看了一个HTTP协议于是就写了这样一个自动评论的测试程序,下面是我本次学习实验的学习笔记: 一.准备工作: 1.本机环境:Windows XP SP3.ADSL 10M光纤 2.开发工具 ...

  6. 如何自动填充网页表单_iCab for Mac(web网页浏览器)

    iCab for Mac是一款小巧实用的web网页浏览器,支持HTML4,图像过滤,cookie过滤,书签,java和javascript支持,搜索模式,从资源管理器导入Web档案,下载管理器以及许多 ...

  7. python批量自动填写网页表单_使用python+selenium帮助你填写网站表单

    应用场景:频繁往网站.电商平台后台等填写数据. 工作场景:电商上传商品.测试人员.批量提交表单等. 涉及内容:python读写EXCEL文件.selenium基础使用.Xpath基础使用.python ...

  8. 火狐浏览器Firefox 如何使用iMacros 自动填写网页表单

    1 我们首先访问一个想要自动填写表单的网站.我们以百度为例,右侧有登录窗口. 2 然后我们点开刚安装上的iMacros插件,一般安装之后就会自动出现在浏览器的某个地方,点击记录选项卡,再点击记录. 3 ...

  9. 如何自动填充网页表单_流量型称重型充绒机充棉机如何选择,教你轻松辨别全自动填充机器...

    秋冬季节的气温骤降让羽绒制品棉服等的市场需求急剧增大.服装加工厂及家纺工厂的订单量也逐步递增.单靠手工加工所提供的加工速率已很难跟上需求的制作.而全自动的填充机器可以节约大量的人工成本,同时在加工速度 ...

最新文章

  1. 《Linux shell变量总结回顾》RHEL6
  2. class ts 扩展方法_如使用Typescript撸Vue(Vue2 + TS +TSX+CSS module)
  3. 在虚拟机上安装Docker并运行Nginx
  4. C语言——日常刷题(一)
  5. pythonexcel工具介绍_Python处理excel的强大工具
  6. iOS modal view的关闭和显示问题
  7. 如何做一名了不起的开发人员?
  8. jquery mobile 中文在线文档
  9. 【阅读笔记】Implementation of tactical maneuvers with maneuver libraries
  10. 带小数十进制转二进制C语言,c语言十进制小数转为二进制
  11. Kubernetes 基于Service的蓝绿发布
  12. 不良事件总结怎么写_2017年第一季度不良事件总结分析
  13. 二维码名片的生成与读取
  14. DropBox系列-安卓DropBox介绍
  15. 查看Oracle数据库资源状况
  16. MD5加密是什么?为什么不可解密?
  17. 多项式(带余)除法学习笔记
  18. Pod生命周期中的状态解释
  19. KS值是衡量分类模型预测准确度的重要指标之一,它反映了模型预测结果与实际数据分布差异的程度。本文将介绍什么是KS值,如何计算以及在Python中如何实现。
  20. ggplot2-为可视化建模2

热门文章

  1. linux下如何查看chm文件
  2. 《梦断代码》阅读笔记Ⅱ
  3. LeadTools Android 入门教学——运行第一个Android Demo
  4. CCS5连接调试C64X系列DSP核
  5. uniGUI 实操感受
  6. 免费下载精美网站模板的25个网站推荐
  7. Linux下的文件共享全攻略系列之一:Samba服务器简介与快速配置指南
  8. 2008春节长白山哈尔滨雪乡游
  9. hdu 5692 Snacks(dfs序+线段树区间更新)
  10. poj 3616(简单dp)