【问题标题】:How to screen scrape form results from a browser如何筛选来自浏览器的抓取表单结果
【发布时间】:2010-11-09 19:50:38
【问题描述】:

我有一个使用第三方网络软件的客户端。在一个屏幕上,我的客户填写了一张表格。在提交之前,他想运行一些东西来捕获他输入的内容并将其插入到 csv 或数据库中。 CSV 或数据库部分很简单。从已经启动的浏览器获取数据,在另一个 Web 服务器上运行是我不知道该怎么做的部分。

如何获取 html 表单的内容?我更喜欢使用 c#、vb.net、vbs 或类似的工具,但我真的对任何东西都感兴趣。我也不想在客户端工作站上安装自定义软件,除了我在这里写的屏幕抓取软件。我还希望用户填写表单并运行我的脚本来收集数据,而不是运行自定义浏览器实例。

谢谢!

【问题讨论】:

  • 您正在消除所有明显的解决方案。接下来是 Greasemonkey。

标签: c# .net vbscript screen-scraping


【解决方案1】:

在用户提交表单之前,数据只存在于浏览器中。浏览器是您可以从中获取数据的唯一地方。

您需要类似浏览器帮助对象或 FireFox 中的等价物。您还必须限制可以使用的浏览器,并且您必须维护这个帮助工具。

您最好告诉客户“不”,或者找到更好的方法来做他真正想做的事情(例如,第三方应用程序可能需要能够保存发送给它的内容)。

【讨论】:

    【解决方案2】:

    如果您或您的客户不介意使用 Windows 窗体应用程序,您可以添加一个 WebBrowser 控件,然后将其指向第三方 Web 应用程序。然后,您可以尝试通过控件的.Document 属性访问网页的元素(即表单字段)。虽然我不确定您是否可以访问特定的表单字段值。

    编辑
    我能够按照我所说的做到这一点。我创建了一个 Windows 窗体应用程序,添加了一个 webbrowser 控件 (webBrowser1),然后将此 html 加载到其中(使用适当的 、

    标签等):
    <form id="form1" method="post" action="test.htm">
      <input type="text" id="testText" name="testText" />
      <br />
      <input type="submit" value="Save" />
    </form>

    注意:我通过将其保存在一个 html 文件中并在我的 Form_Load 事件中使用 webBrowser1.Url = new Uri(@"c:\test.htm"); 来做到这一点。

    然后我可以通过这样做访问我在testText 中输入的任何内容:

    HtmlDocument doc = webBrowser1.Document; //Gets the html document
    HtmlElement elem = doc.Body.All["testText"]; //Gets the input element
    MessageBox.Show(elem.GetAttribute("value")); //Gets the value attribute

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      我决定使用 javascript 并添加一个 IE 收藏夹或一个 firefox 书签来实现这一点。它从表单中检索数据,将数据从查询字符串发送到 aspx 页面。然后,aspx 页面将数据写入数据库,并在写入成功与否时显示弹出图形。

      这是一个脚本示例:

      javascript:var oForm = document.forms[0];var name = oForm.elements["name"].value; void window.open("http://www.mydomain.com/page.aspx?data=" + name ,"_blank","resizable,height=130,width=130");
      

      谢谢大家的建议!!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-07
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 2011-03-29
        • 2014-05-23
        相关资源
        最近更新 更多