【问题标题】:Retrieve Form Data From HTML Form with VBA使用 VBA 从 HTML 表单中检索表单数据
【发布时间】:2013-08-04 09:51:46
【问题描述】:

我正在尝试编写一个宏,用于从网页中检索所有 HTTP Post 表单上的数据,然后将可能的输入显示为工作表中的列标题。 (稍后我将编写另一个宏,根据来自下面行的输入构造适当的请求。)

我花了一天时间尝试用正则表达式解析 HTML,(经典的菜鸟错误,对吗?),这是一场灾难。似乎没有什么比几个网页更有效的了。

我的问题有点笼统。它应该能够与 REGEX 一起使用吗?我应该采取完全不同的方法吗?对于不太了解 html 和更广泛的 Web 开发的人来说,这是一项太大的任务吗?我认为这将是一个简单的项目,但似乎并非如此。

【问题讨论】:

    标签: html regex forms vba


    【解决方案1】:

    不要使用正则表达式。使用 html 解析器。既然你说你正在使用 vba,我猜你已经安装了 excel。 excel 具有“从网络导入数据”功能,适用于任何格式良好的 html 表格。

    如果这不起作用,大多数具有 vba 的平台还具有某种 Web 浏览器控件。在所述控件的实例中加载您的目标网页,并使用 DOM 的方法访问您想要的表。

    【讨论】:

    • 感谢您的回复。问题是我不是在尝试提取表单数据,而是在可能的 http post 请求中获取元数据,以便我可以更改变量值并发送查询。
    • 动态,在运行时?使用 DOM 对象,并查找 form 元素。您甚至可以直接调整值,并通过网页发送,而不是使用 XHR。
    • dom 的建议真的帮助了我,非常感谢。我目前有一个与 Internet Explorer 对象一起使用的版本,但它真的很慢而且很笨重。您知道检索/提交 DOM 对象的更好方法吗?我目前正在尝试使用 XMLHTTP 来实现,但它几乎会为每个 url 抛出错误。
    • XmlHttpRequest 对象或 XHR 并非旨在管理完整的网页。 .com 一个半自动浏览器可能是你最好的选择,除非你想自己硬核 http 请求。关闭 ie 对象中的图像和/或 JavaScript 可能会提高性能,但作为一般解决方案,您不会找到很多更好的选择。
    • 另外,如果它是您或您的客户控制的特定表单(或有 api),您应该在代码中创建一个 http 请求,而不是使用 DOM。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2020-03-29
    相关资源
    最近更新 更多