WebBrowser的用法

《Python入门到精通》webbrowser模块详解,Python webbrowser标准库,Python浏览器控制工具 webbrowser 是Python的内置库,提供了访问Web浏览器的接口 阅读详情

 
WebBrowser是一个简单的浏览器,我们可以通过它完成很多关于网页的操作。

在Delphi中,需要引用ShDocVw和MsHtml,下面会逐渐介绍一些使用办法
创建WebBrowser

WebBrowser := TWebBrowser.Create(nil);

WebBrowser.ParentWindow := Self.Handle;
WebBrowser.Height := 100;
WebBrowser.Width := 100;

WebBrowser.Silent := true; //不会因为网页错误弹出对话框

WebBrowser.OnBeforeNavigate2 := OnNewWindow; //可屏蔽不相关的网页
WebBrowser.OnDocumentComplete := OnComplete; //流程处理的关键


打开某个页面
WerBrowser.Navigate('http://www.zixunwang.biz:8080/');


procedure   OnNewWindow(...);

begin

cancel := Pos('http://www.zixunwang.biz:8080/', URL) = 0;

//屏蔽不相关的网页,在这里会屏蔽http://www.zixunwang.biz:8080/以外的网页

end;


procedure OnComplete(...);

begin

if url = 'http://www.zixunwang.biz:8080/login.aspx' then LoginProcess();

if pos('default.aspx', url) <> 0 then defaultProcess();

end;
有的时候,我们想获取网页中的元素的信息,或是想设置网页中元素的信息,那么如下代码应该是你关心的了

以下的代码是演示设置信息,函数通过遍历网页中所有元素,将符合元素设置合适的值

procedure login;
var
Doc: IHtmlDocument2;
i: Integer;
Input: IHTMLInputElement;
Item: IDispatch;
Data: String;
begin
Doc := WebBrowser.Document as IHtmlDocument2;
Data := Doc.body.innerHTML;
for i := 0 to Doc.all.length - 1 do
begin
    Item := Doc.all.item(i, 0);
    if SUCCEEDED(Item.QueryInterface(IHTMLInputElement, Input)) then
    begin
      if Input.name = 'FSI-UserName' then Input.value := '用户名';
      if Input.name = 'FSI-Password' then Input.value := '密码';
    end;
end;
end;

问题1:'FSI-UserName'和'FSI-Password'是怎么得到的?

解答1:你可以通过查看网页原文件获得这些ID,这些ID都是唯一的

问题2:IHTMLInputElement是什么东西?

解答2:IHTMLInputElement是一个系统定义的接口,在网页中的所有元素,如button,textarea,select,frame,image等都定义有接口,选择合适的接口类型对网页元素进行转换,就可以得到该元素详细的值,具体请参看MSHTML中的定义或给我留言


有的网页内有frame或iframe,我们如何取到其中的信息?


//取得frame个数

function GetFrameCount: Integer;

var

Doc: IHTMLDocument2;

begin

   Doc := WerBrowser.Document as IHTMLDocument2;

Result := Doc.Frame.Length;

end;


//取得第n个frame内容

function GetFrameDoc(n: Integer);

var

Doc: IHTMLDocument2;

OleContainer: IOleContainer;
enum: IEnumUnknown;
unk: IUnknown;
Fetched: PLongint;

begin

   Doc := WebBrowser.Document as IHTMLDocument2;
   Fetched := nil;
   OleContainer:= Doc as IOleContainer;
   OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, enum);
   Enum.Skip(n);
   Enum.Next(OLECONTF_EMBEDDINGS, Unk, Fetched);
   IE := Unk as IWebbrowser2;
   return IE.Document as IHTMLDocument2;

end;

你说的都是在自己创建的WebBrowser中进行操作,能否在已经打开的浏览器中进行呢?

这个问题其实分2步,第1是找到你关注的浏览器窗口,第2是把这个窗口转换为IWebBrowser2


function getIEFromBrowser(URL: String): IWebBrowser2;

var

ShellWindow: IShellWindows;
nCount, i: integer;

vi: OleVariant;
spDisp: IDispatch;
begin

ShellWindow := CoShellWindows.Create;
nCount := ShellWindow.Count;
for i := 0 to nCount - 1 do
begin
    vi := i;
    spDisp := ShellWindow.Item(vi);
    if (spDisp = nil) then Continue;
    spDisp.QueryInterface(iWebBrowser2, Result);
    if (Result = nil) then Continue;
    if Pos(UpperCase(URL), UpperCase(Result.Get_LocationURL)) = 0 then Continue;

    exit;

end;

result := nil;

end;

间充质干细胞衰老机制与抗衰老干预策略研究 干细胞技术在再生医学领域具有广阔应用前景,其中间充质干细胞(MSCs)因其多向分化潜能和免疫调节特性备受关注。细胞衰老是影响干细胞治疗效果的共性难题,表现为增殖能力下降、端粒缩短等特征。通过表观遗传学分析发现,衰老MSCs存在DNA甲基化异常和组蛋白修饰改变;线粒体功能障碍导致ATP产量锐减,ROS累积显著增加。针对这些机制,研究者开发了包括小分子化合物筛选、CRISPR基因编辑和三维培养优化在内的多种干预策略。这些技术在组织修复、抗衰老治疗等应用场景中展现出重要价值,例如可提升心肌梗死修复效率2.3倍,缩 阅读详情

相关推荐

FDTD Solutions-入射波长模式

经常在文献中看到仿真光源使用TM/TE模式,这个确定是十分必要的,决定了仿真结果。 但是也不能局限于选择TM/TE,因为不同领域、不同软件之间的使用习惯和命名可能不同。并且在现代光波导器件中,几乎全部 都是混合模式,或者称之为quasi-TE(准TE模式)和quasi-TM(准TM模式),多数情况下都简称为TE模式和TM模式。要知道 到底是TE模式还是TM模式,需要查看其电场的主分量(即振幅...

HECHUANWANG的博客 1万+

如何让WebBrowser静悄悄地运行

   当IE浏览器遇到脚本错误时浏览器,左下角会出现一个黄色图标,点击可以查看脚本错误的详细信息,并不会有弹出的错误信息框。当我们使用WebBrowser控件时有错误信息框弹出,这样程序显的很不友好,而且会让一些自动执行的程序暂停。我看到有人采取的解决方案是做一个窗体杀手程序来关闭弹出的窗体。今天探讨的方法是从控件解决问题。   1、SHDocVw.dll   在COM时代我们使用的WebBr

yanick技术博客 1039

可微编程:当深度学习遇见物理定律,重塑科学计算新范式

本文探讨了可微编程如何将深度学习与物理定律相结合,重塑科学计算范式。通过自动微分技术,它将物理方程融入可微计算图,使模型在数据驱动的同时遵守物理约束。文章以神经常微分方程为例,阐述了其在连续系统建模、科学模拟器优化等领域的应用,并分析了当前面临的挑战与最佳实践路径。

weixin_29056145的博客 135

python模块介绍-webbrowser_Python基础--webbrowser

非常多人,一提到Python,想到的就是爬虫。我会一步一步的教你怎样爬出某个站点。今天就先介绍一下webbrowser,这个词您肯定不会陌生。对,就是浏览器。看看Python中对webbrowser的描写叙述:Thewebbrowsermodule provides a high-level interface to allow displaying Web-based documents to ...

weixin_32275943的博客 2822

智能车竞赛独轮组信标灯系统全解析:从硬件选型到实战调试

本文全面解析了智能车竞赛独轮组信标灯系统的核心原理与实战应用。从硬件架构(灯板、灯罩、控制器)的深度剖析,到红外信号(特别是40kHz调制信号)的接收与解码策略,再到车模的灭灯机构设计与路径规划,提供了从硬件选型到软件调试的全链路指南。文章重点分享了实战调试技巧与常见问题排查方法,旨在帮助参赛队伍深入理解系统,提升车模的识别精度与比赛表现。

e4f5g6h的博客 1124

SPV1050低功耗微功率太阳能充电管理模块原理图设计,已量产

在物联网应用快速普及的今天,户外低功耗传感器(如土壤温湿度、环境光照、无线节点等)的供电始终是行业痛点 —— 传统锂电池不仅需要定期更换,维护成本高,还难以满足 “终身免维护” 的场景需求。为此,我们设计了一款专为 1V~3V 低电压小型太阳能板优化的微功率太阳能电源管理模块,结合 USB 备用充电路径,实现了低功耗传感器的长期自主供电。

不脱发的程序猿 449

WebBrowser控件使用详解

方法 说明  GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项  GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项  GoHome 相当于IE的“主页”按钮,连接用户默认的主页  GoSearch 相当于IE的“搜索”按钮,连接用户默认的搜索页面  Navigate 连接到指定的URL  Refresh 刷新当前页面  Refresh2 ...

rockfall的专栏 5104

基于点云数据的统计滤波算法改进

随着三维视觉和点云处理技术的发展,点云数据在机器人、自动驾驶、增强现实等领域得到了广泛应用。而点云数据中常常包含着各种噪声和异常点,这些噪声和异常点会影响后续的数据处理和分析任务。因此,对点云数据进行滤波处理是必不可少的一步。在点云滤波算法中,统计滤波(Statistical Filtering)是一种常见且有效的方法。它通过对点云数据进行统计分析,将噪声和异常点剔除或修复,从而得到更为准确和可靠的点云数据。本文将介绍一种改进的统计滤波算法,并提供相应的源代码实现。

QfcaLinux的博客 292

关于WebBrowser的一些用法

1.获得网页中变量值 htm中<script> var currID=123</script> 程序中可以这么调用 id := Form1.WebBrowser1.OleObject.Document.script.currID 值得说明的是,变量可以是javascript定义的,也可以是vbscript定义的,如果Webbrowse...

weixin_30552811的博客 176

Dify 第 2 篇 Dify 插件离线安装

Dify是一个支持插件扩展的AI平台,其插件市场提供5种类型插件(模型、工具、Agent策略、扩展、插件包)。由于默认pip安装速度慢,可通过dify-plugin-repackaging工具将插件转换为离线包(使用阿里云镜像加速)。该工具提供两种方式:1)自备Python环境执行脚本;2)使用Docker环境(推荐)。脚本支持从Dify市场或GitHub下载插件,并重新打包为含依赖的离线包,便于通过"本地插件"方式快速安装。

甘蓝的专栏 1271

AI智能体面试实战与真题解析: 312+道面试题完整答案 (下篇)

本文覆盖220道基础八股文+92道项目面试题,涵盖Agent架构、RAG、工具调用、记忆系统、多智能体、大模型基础、工程化实践、Prompt工程9大模块,含完整代码实现和模拟面试剧本。

program哲学 308

delphi中webbrowser的用法

delphi中webbrowser的用法

宁静志远 8080

Matlab之App Designer 如何进行三维图形绘制教程

基于Matlab中的App Designer设计可视化界面并进行数据导入及3D绘图,可以直观的在可视化界面上展示分析结果,方便用户进行图形的操作。本文采用案例讲解的方式,详细介绍了如何采用Matlab App Designer建立数据3D绘图的GUI可视化界面的方法和详细的过程步骤,并介绍了导入数据进行计算时需要注意的相关事项,同时提供了详细的代码,以便读者进行学习和操作。

m0_59012156的博客 2067

Internet Explorer 编程简述(一)WebBrowser还是WebBrowser_V1

关键字:WebBrowser, WebBrowser_V1,NewWindow, NewWindow2, NewWindow3, INewWindowManager 你的机器上总是存在着“两”个WebBrowser,一个叫WebBrowser,另一个叫WebBrowser_V1,其CLASSID如下:  CLASS_WebBrowser: TGUID = {8856F961-340A-1

eagleboost's blog 1万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WebBrowser用法总结

简单用了一下记录一下: private void button1_Click(object sender, EventArgs e) {     MessageBox.Show(webBrowser1.Document.Body.InnerHtml);//得到浏览器html内容,还可以用GetElementById(); } private void Form2_Load(o

tery001的专栏 2969

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

pb webbrowser控件用法

 1、插入一个webbrowser控件命名 ole_webbrowser 2、写个打开网页的按钮 ole_webbrowser.object.navigate("www.baidu.cn") 3、插入一个listbox控件 4、写个获得链接的按钮 int i,count string ls_link[] count = ole_webBrowser.object.Document.getEleme

永生天地 6907

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python的webbrowser详解_介绍一下Python中webbrowser的用法?

2015-11-30 06:30:02阅读( 197 )webbrowser模块提供了一个高级接口来显示基于Web的文档,大部分情况下只需要简单的调用open()方法。webbrowser定义了如下的异常:exception webbrowser.Error, 当浏览器控件发生错误是会抛出这个异常webbrowser有以下方法:webbrowser.open(url[, new=0[, autor...

weixin_30120123的博客 953

webbrowser的一些资料

有人总问为什么在使用webbrowser.document.links.length时候会有错误91         这是因为你在webbrowser   还没有完整的下载页面,就使用的document   对象         会出现对象未设置错误91         解决办法就是   Private   Sub   Form_Load()         WebBrowser1.Navigat

唸 尐 憂 的 天 空 977

VB WebBrowser控件总结

1.webbrowser控件的DocumentComplete和DownloadComplete的区别文档完全下载后,一个 DownloadComplete 事件就被引发。这并不一定表明可以通过对象模型安全地访问文档内容了。DocumentComplete 事件才表明所有的工作都已完成并且文档已经就绪。 DocumentComplete url请求的页面完成;当整个文档完成时激发,刷新页面不激发 DownloadComplete url中请求的下载完成;当某项下载操作已经完成后激发,刷新也可

TJT999 9204

WPF中WebBrowser的使用方法及分析

基础知识WebBrowser类 承载并在HTML文档间导航。在WPF托管代码和HTML脚本间启用互操作性。 WebBrowser.Navigate方法(Uri) 异步导航到位于指定Uri处的文档。 命名空间:System.Windows.Controls 程序集:PresentationFramework(在PresentationFramework.dll中) 语法:public vo

一蓑烟雨任平生 也无风雨也无晴 3万+

webbrowser php,WebBrowser的用法

WebBrowser的用法2008-06-18 11:22WebBrowser是一个简单的浏览器,我们可以通过它完成很多关于网页的操作。在Delphi中,需要引用ShDocVw和MsHtml,下面会逐渐介绍一些使用办法创建WebBrowserWebBrowser := TWebBrowser.Create(nil);WebBrowser.ParentWindow := Self.Handle;We...

weixin_39611275的博客 217

vb webbrowser html5,VB.net 里的WebBrowser 怎么使用-WebBrowser指南

‘以下是遍历所有的IE窗口,包括MyIE等基于IE控件的其他浏览器。‘我在windows2000+myie2调试通过。至于你说用控件可以解决,我好像还没看到这样的控件。”””””””””””””””””””””””””””””””””””””””’‘Addressof 一定要放在标准模块中,所以以下部分放在标准模块中,在外面调用 GetAllIEAddress 就是Option ExplicitP...

weixin_31556371的博客 990

获得webbrowser的编码菜单

获得webbrowser的编码菜单msdn有篇文章教如何自定义webbrowser的右键菜单,名曰"WebBrowser Customization"(http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/hosting/wbcustomization.asp)看这段,IDocHostUIHandler::ShowC

lingll's blog 2838
上一篇: 从一个HTML返回所有的图片链接
下一篇: webbrowser自动填表模板
iseekcode
博客等级 码龄18年 36粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值