主要是编码出的问题。
我的解决思路是下载html页面内容通过.net里的WebClient或httpWebRequest把网页内容取下来,然后在把文本内容交给HtmlParser。
以下是代码
我的解决思路是下载html页面内容通过.net里的WebClient或httpWebRequest把网页内容取下来,然后在把文本内容交给HtmlParser。
以下是代码
//HtmlParser解析文本
Parser parser = Parser.CreateParser(ZSL_HTMLManager.DownLoadStringFromHTML(previewUrl), "utf-8");
//new Parser(new Uri(previewUrl),);
NodeFilter firstdivTagfilter = new TagNameFilter("div");
NodeFilter firstclassPropertyFilter = new HasAttributeFilter("class", "blog_list");
NodeFilter firstandfilter = new AndFilter(firstdivTagfilter, firstclassPropertyFilter);
nodes = parser.ExtractAllNodesThatMatch(firstandfilter);
//ZSL_HTMLManager.DownLoadStringFromHTML(previewUrl) 的实现方法
public static string DownLoadStringFromHTML(string url)
{
try
{
WebRequest myre = WebRequest.Create(url);
}
catch (WebException exp)
{
return "ERROR";
}
try
{
WebClient wc = new WebClient(); // 创建WebClient实例提供向URI 标识的资源发送数据和从URI 标识的资源接收数据
wc.Credentials = CredentialCache.DefaultCredentials; // 获取或设置用于对向 Internet 资源的请求进行身份验证的网络凭据。
///方法一:
Encoding enc = Encoding.GetEncoding("utf-8"); // 如果是乱码就改成 utf-8 / GB2312
Byte[] pageData = wc.DownloadData(url); // 从资源下载数据并返回字节数组。
return enc.GetString(pageData); // 输出字符串(HTML代码),ContentHtml为Multiline模式的TextBox控件
}
catch
{
return "ERROR";
}
}