gpt4 book ai didi

webforms - 自动化网站登录和表单填写?

转载 作者:行者123 更新时间:2023-12-04 17:05:39 26 4
gpt4 key购买 nike

我正在尝试登录网站并自动保存 HTML 页面(我希望能够定期执行此操作)。从表面上看,这是一个典型的现代网站,如果用户直接导航到“锁定”的 URL,则会弹出一个登录表单,登录后,用户将被重定向到预期页面。

我给了机械化一个镜头( http://wwwsearch.sourceforge.net/mechanize/ ),但它没有找到登录所需的一些表单元素(隐藏元素具有一些值,这些值由用户单击“登录”按钮时运行的 javascript 函数输入) .

我在 .NET 中使用了“网络浏览器”控件,但很快就失去了兴趣,因为我什至无法让它在 Google 页面上提交查询。

我不在乎语言是什么;我会学习它来解决这个问题。至少它必须在 Windows 中工作。

一个简单的例子,比如说,在谷歌搜索框中输入一个查询将是一个很大的好处。

最佳答案

根据我的经验,最可靠的方法是使用 javascript。它在 .Net 中运行良好。要进行测试,请在 Firefox 或 Internet Explorer 中依次浏览以下地址:

http://www.google.com
javascript:function f(){document.forms[0]['q'].value='stackoverflow';}f();
javascript:document.forms[0].submit()

这会在 Google 上搜索“stackoverflow”。要使用 webbrowser 控件在 VB .Net 中执行此操作,请执行以下操作:
WebBrowser1.Navigate("http://www.google.com")
Do While WebBrowser1.IsBusy OrElse WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Threading.Thread.Sleep(1000)
Application.DoEvents()
Loop
WebBrowser1.Navigate("javascript:function%20f(){document.forms[0]['q'].value='stackoverflow';}f();")
Threading.Thread.Sleep(2000) 'wait for javascript to run
WebBrowser1.Navigate("javascript:document.forms[0].submit()")
Threading.Thread.Sleep(2000) 'wait for javascript to run

注意 URL 中的空格是如何转换为 %20 的。我不确定这是否有必要,但它不会造成伤害。重要的是第一个 javascript 在一个函数中。对 Sleep() 的调用将等待 Google 加载以及 javascript 内容。如果页面加载失败,Do While 循环可能会永远运行,因此出于自动化目的,有一个计数器会在 60 秒后超时。

当然,对于 Google,您可以直接导航到 www.google.com?q=stackoverflow,但是如果您的站点有隐藏的输入字段等,那么这就是要走的路。仅适用于 HTML 站点 - Flash 是另一回事。

关于webforms - 自动化网站登录和表单填写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1731752/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com