1

所以我试图登录一个页面并从该页面中获取一些数据,但我的问题是填写这些登录信息。

我尝试了什么?在 url 中发布数据。通过简单地添加 postname en 值,如下所示:http://stackoverflow.com?postLogin=myUsername&postPassword=myPassword。我用这个网址发送了一个请求。它给了我一个错误。我在浏览器上查看了网址。似乎它确实填写了用户名,但没有填写密码文本框(我写了正确的邮件名)。

我还看到有人建议使用 HtmlAgilityPack 填写数据(标记为答案)。但经过更多搜索后,似乎无法单独使用 HtmlAgilityPack。HtmlAgilityPack 非常适合解析 html 而不是填充它。所以我得出一个结论,我可能必须使用 httpRequest 和 HtmlAgilityPack 的组合。

我可能是错的,所以如果你有更好的建议可以帮助我自由地指出正确的方向。

但如果我想这样做,我不知道如何一起使用它们。我首先将我的 webrequest 发送到登录页面以获取 htmlpage。我从我的 httpWebRequest 获得响应,但是如何让我的 Webbrowser 类解析该响应,然后让我的 webrequest 使用用户名、密码发送帖子数据,当然尝试提交它?

如果你想用 c# 给出答案,我想我可以自己阅读和翻译。

编辑:我刚刚使用了提琴手并收到了 8 个正在发送的帖子。这是否意味着我已经将所有 8 个都发送到了 url?

4

1 回答 1

1

无需使用 WebBrowser 来解析 HTML。您可以在 HTML 中以字符串形式查找所需的信息,也可以使用http://htmlagilitypack.codeplex.com/之类的库进行解析。

此外,您会发现http://www.fiddler2.com/对于确定浏览器向网页发送的确切信息非常有用,因此您可以使用 HttpWebRequest(标头、GET/POST 值等)重现该行为。

您也可以尝试http://www.chadsowald.com/software/fiddler-extension-request-to-code - Fiddler 的扩展,它会自动生成模仿浏览器请求的 .NET 代码。

于 2012-11-05T09:31:45.657 回答