我有一个应用程序的想法,这将真正帮助我在工作中,但我不确定这是否可能。
我想运行一个C#桌面应用程序,它将请求一个值。当提供一个值时,应用程序将打开一个浏览器,转到一个网页并将该值添加到在线网站上的表单中。然后提交表单,并加载一个包含结果表的新页面。然后,我想从页面源代码中提取结果表,并编写代码来解析结果值。
用户是否在实际的浏览器中看到这种情况并不重要。换句话说,如果有一种方法可以通过读取HTTP请求来做到这一点,那就太好了。
我遇到的最大问题是将值放入表单中,然后在表单提交并加载下一个页面后检索页面源代码。
真的很感谢任何人的帮助。
谢谢
发布于 2010-07-15 22:45:51
这绝对是可能的,而且你不需要使用实际的web浏览器。您可以简单地使用System.Net.WebClient发送您的HTTP请求并获得HTTP响应。
我建议使用wireshark (或者你可以使用Firefox + Firebug),它可以让你看到HTTP请求和响应。通过查看HTTP流量,您可以确切地看到应该如何传递HTTP请求以及应该设置哪些参数。
发布于 2010-07-15 22:48:00
假设您只在法律上下文中使用它:
通常,web表单通过POST请求发送到web服务器,特别是一些处理它的脚本。您可以查看表单页面的HTML代码并找到表单的目的地(表单的操作)。
然后,您可以在C#中使用HttpWebRequest来“假装您是表单”,发送一个包含所有必需参数的POST请求(将它们添加到header中)。
因此,您将获得目标页面的源代码,因为它将被发送到浏览器。你可以解析这个。
发布于 2010-07-15 22:47:37
你不需要让浏览器来处理这件事。WebClient应该能做你需要的所有事情。当您使用浏览器提交表单时,您需要查看实际发布的内容,然后您应该能够使用WebClient发出POST请求,并以字符串形式检索结果页面。
WebClient constructor的文档有一个很好的例子。
https://stackoverflow.com/questions/3256677
复制相似问题