2017-03-07 30 views
-2

我有一個包含網站的內容,例如(概述,插入標籤和內容在你的頭腦)的字符串如何在沒有多餘的情況下獲得網站內容?

$string = '<html> 
    <head> 
    <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"> 
    <title>Some title 
    </title> 
    </head> 
    <body>Navigation 
    <br><div>CSS</div> 
    <br><div>JavaScript</div> 
    <br>Advertising 
    <br><div>Content</div> 
    <br>Navigation 
    <br>Advertising 
    <br>Inprint 
    <br> 
    </body> 
</html>' 

我怎麼沒有多餘的內容?根據內容,我不是指「內容」一詞,而是指網站的任何真實內容。

例如,在一個論壇上,我希望本次論壇的條目沒有導航,標籤,廣告。

我試圖string s = Regex.Replace(string, "<.*?>", String.Empty);這是剛剛剝離的標籤,但沒有得到內容。

有沒有對網站重複和可被利用一些模式,幫助我得到無雜波的內容?

+0

我不知道你所說的「多餘」的意思。你可以發佈你的預期產出會是什麼? – smead

+0

使用Html Agility Pack解析HTML。 –

+0

@smead更新。 –

回答

0

您可以使用HTML Agility Pack NuGet包。它非常靈活,你可以變得非常具體,你想通過它實現什麼。

這裏是如何讓所有的超鏈接在頁面的例子:

HtmlDocument document2 = new HtmlDocument(); 
document2.Load(@"C:\Temp\sample.txt") 
HtmlNode[] nodes = document2.DocumentNode.SelectNodes("//a").ToArray(); 
foreach (HtmlNode item in nodes) 
{ 
    Console.WriteLine(item.InnerHtml); 
} 

還有更多的例子here

+0

雖然是一個好的開始,但它並沒有解決主要問題。主要的問題是如何過濾內容,換句話說,在「SelectNodes」或「foreach」循環中使用什麼內容。我嘗試過'if(item.InnerText.Length> 250 &&!item.InnerHtml.Contains(「>」))'但它並不那麼容易。然後我發現像'div'和'span'這樣的標籤的'attributes'的值包含'full'或'article',所以我使用了這個。仍然不是很滿意。 –

+0

@pdee請定義'content'並在你的問題中提供一個例子。 – CodingYoshi

相關問題