0

嗨,我正在编写一个 HTML 解析器来帮助完成一些工作职责,我可以使用 IE 资源管理器进入该站点。但是使用 csharp 代码我得到一个错误

我试过使用

client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy.Credentials = CredentialCache.DefaultCredentials;

我没有得到请求的页面,而是一个错误页面。如果我可以在资源管理器中查看页面,则必须有一种方法可以在 C# 中检索其 html

(请注意,其他浏览器中的同一页面需要身份验证 - 不在 IE 中)

4

2 回答 2

1

你可以试试这个库:https ://github.com/HtmlUnit/NHtmlUnit

您可以使用 html 单元以编程方式执行 html 操作。更多信息可以在http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/找到

于 2012-11-27T16:06:18.727 回答
1

问题出在请求标头上,C# 没有发送 user-agnet 标头标签,我猜我尝试连接的站点如果遇到没有用户代理的情况下会返回错误。

添加以下行以调整标题到我的 IE 标题:

WebClient client = new WebClient();
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy.Credentials = CredentialCache.DefaultCredentials;
client.Headers.Add ("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
于 2012-11-27T17:02:27.513 回答