_request = (HttpWebRequest)WebRequest.Create(url);
_response = (HttpWebResponse) _request.GetResponse();
StreamReader streamReader = new StreamReader(_response.GetResponseStream());
string text = streamReader.ReadToEnd();
带有html标签的文字。如何在没有html标签的情况下获取文本?
答案 0 :(得分:3)
如何在不使用第三方库的情况下从动态HTML中提取文本?很简单,您可以使用.NET框架中的字符串解析函数创建自己的HTML解析库。
说真的,自己这样做是个坏主意。如果您从Web上提取动态HTML,则必须为不同的结束标记,不匹配的标记,缺少结束标记等做好准备。 除非你有一个真的好的理由,为什么你需要自己编写一个,只需使用HTML Agility Pack ,然后让它为你努力工作。
另外,请确保您没有屈服于Not Invented Here Syndrome。
答案 1 :(得分:2)
您可能需要查看HTMLAgilityPack。
这是一个很棒的免费.net库,它允许您加载和解析HTML。享受。
答案 2 :(得分:1)
之前已经问过这个问题。有几种方法可以做到这一点,包括使用正则表达式或Adrian,Agility Pack指出。
答案 3 :(得分:1)
1)不要使用正则表达式。 (请参阅这篇伟大的StackOverflow帖子:RegEx match open tags except XHTML self-contained tags)
2)使用HtmlAgilityPack。但我发现你不想要第三方图书馆,所以我们被迫......
3)使用XmlReader。您可以直接使用MSDN中的示例代码,并忽略XmlNodeType
除XmlNodeType.Text
之外的所有情况。对于这种情况,只需将输出写入StreamWriter。
答案 4 :(得分:1)
试试这个:
System.Xml.XmlDocument docXML = new System.Xml.XmlDocument();
docXML.Load(url);
string textWithoutTags = docXML.InnerText;
快乐:)