我需要一个获取页面链接并返回此页面标题的方法。
我使用了WebClient -
var webClient = new WebClient();
var htmlString = webClient.DownloadString(_link);
它运作良好,但它失败了外语编码。我得到问号和奇怪的字符而不是我需要的文字。
是否有通用的方法来识别页面的编码并使用它?我需要它来支持大多数编码,如果不是全部的话。
答案 0 :(得分:10)
使用HtmlAgilityPack你可以做这样的事情
using (WebClient client = new WebClient())
using (var read = client.OpenRead("http://your.com"))
{
HtmlDocument doc = new HtmlDocument();
doc.Load(read, true); // true = get encoding from byte order masks
// process doc, extract title
var title = doc.DocumentNode.SelectSingleNode("//title").InnerText;
}
答案 1 :(得分:0)
using System;
using System.IO;
using System.Net;
using System.Text;
...
public static void GetFile
(
string strURL,
string strFilePath
)
{
WebRequest myWebRequest = WebRequest.Create(strURL);
WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader( ReceiveStream, encode );
string strResponse=readStream.ReadToEnd();
StreamWriter oSw=new StreamWriter(strFilePath);
oSw.WriteLine(strResponse);
oSw.Close();
readStream.Close();
myWebResponse.Close();
}