【发布时间】:2011-01-06 08:39:51
【问题描述】:
我正在构建一个需要从合作伙伴网站抓取信息的网站。现在我的抓取代码在其他网站上效果很好,但不是这个。这是一个常规的 .html 网站。我的想法是它可能是用 php 生成的(网站是用 php 构建的)。
我不知道我只是在猜测生成的部分,我需要您的专业人士帮助。如果这很重要,那就是我使用的代码。 htmlDocument 是 htmlAgilityPack 但这与它无关。在我尝试的网站上结果为空。
string result;
var objRequest = System.Net.HttpWebRequest.Create(strUrl);
var objResponse = objRequest.GetResponse();
using (var sr = new StreamReader(objResponse.GetResponseStream()))
{
result = sr.ReadToEnd();
sr.Close();
var doc = new HtmlDocument();
doc.LoadHtml(result);
foreach (var c in doc.DocumentNode.SelectNodes("//a[@href]"))
{
litStatus.Text += c.Attributes["href"].Value + "<br />";
}
}
编辑:
这是来自 w3 验证器,可能与此有关?
抱歉,我无法验证此文档,因为它在第 422 行包含一个或 更多我无法解释为 utf-8 的字节(换句话说,找到的字节无效 指定字符编码中的值)。请检查文件的内容和 字符编码指示。
错误是:utf8 "\xA9" 没有映射到 Unicode
【问题讨论】:
-
那么,
result的值是多少? -
@Marc:OP 声明“我尝试的网站上的结果为空”
-
我已经尝试了大约 15 个站点,而我需要的是唯一一个 null ..
-
可能是你解析的 HTML 不是合法的 HTML,你检查 W3C 验证器时检查结果的值是否有效?
-
resultobj 是否为空,和/或litStatus是否为空?根据null的不同,可能会出现不同的问题。您可以发布您尝试加载的文档的 URL 吗?