【发布时间】:2011-01-11 10:41:10
【问题描述】:
我正在尝试解析来自 www.mediafire.com 的下载页面,但是当我尝试将页面加载到 HtmlDocument 时,我确实经常收到带有以下消息的 System.Net.WebException:
服务器提交了一个协议 违反。 Section=ResponseStatusLine
这是我的代码:
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = null;
string url = www.mediafire.com/?abcdefghijkl //There are many different links
try
{
doc = web.Load(url); //From 30 links, usually only 10 load properly
}
catch (WebException)
{
}
任何想法为什么只有 30 个链接中的 10 个有效(链接每次都会更改,因为我的程序是“搜索引擎”)以及我如何解决问题?
当我在浏览器中加载这些网站时,一切正常。
我尝试将以下几行添加到我的 app.config 中,但这也无济于事
<system.net>
<settings>
<httpWebRequest useUnsafeHeaderParsing="true" />
</settings>
</system.net>
【问题讨论】:
-
他们可能使用用户代理/cookie/header 嗅探来检测非网络浏览器。您可以尝试使用
WebRequest并构造一个类似于您的浏览器的请求。 -
您能否提供更多有关这样做的信息?也许是教程的链接或其他内容?
标签: c# .net html-agility-pack system.net.webexception