您好我正在编写一个HTML解析器来帮助完成一些工作职责, 我可以使用IE浏览器进入该网站。 但使用csharp代码我收到错误
我尝试过使用
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy.Credentials = CredentialCache.DefaultCredentials;
我没有得到所请求的页面,而是一个错误页面。 如果我可以在资源管理器中查看页面,必须有一种方法可以在C#中检索其html
(请注意,其他浏览器中的同一页面需要验证 - 不在IE中)
答案 0 :(得分:1)
您可以尝试使用此库:https://github.com/HtmlUnit/NHtmlUnit
您可以使用html单元以编程方式执行html操作。更多信息可以在http://blog.stevensanderson.com/2010/03/30/using-htmlunit-on-net-for-headless-browser-automation/
找到答案 1 :(得分: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;)");