2012-01-05 67 views
1

我設計一個網站,擦傷頂尖技術網站,如thenextweb.com,mashable.com和readwriteweb.com等在c#中使用htmlagilitypack從網頁中提取鏈接和帖子的方法?

現在使用HTML敏捷性包放棄的一種方式是採取一個網站讓thenextweb.com和根據其<tags>獲取其文章鏈接和內容,即使用<div class ="article-listing"> ..... </div>並通過該鏈接獲取鏈接。 以相同的方式爲每個網站設計算法(因爲每個網站的標籤不同)。

這是我用來從網站thenextweb.com的主頁獲取鏈接:

var webGet = new HtmlWeb(); 
var document = webGet.Load(url); 
var infos = from info in 
      document.DocumentNode.SelectNodes("//div[@class='article-listing']") 
       select new 
       { 
       Contr = info.InnerHtml 
       }; 

lvLinks.DataSource = infos; 
lvLinks.DataBind(); 

是否有任何其他簡單的方式,通過它我可以提取鏈接和內容(崗位和圖片,日期等) ?

回答

1

所有這些網站都應該有RSS訂閱源,這是獲取數據的最佳方式。例如,未來網絡具有這些標記(你並不真正需要的標籤,只是URL):

<link rel="alternate" type="application/rss+xml" title="TNW Network All Stories RSS Feed" href="http://feeds2.feedburner.com/thenextweb" /> 
<link rel="alternate" type="application/rss+xml" title="TNW Network Top Stories RSS Feed" href="http://feeds2.feedburner.com/thenextwebtopstories" /> 

http://feeds2.feedburner.com/thenextwebtopstories

的飼料應該是相同的格式(或至少相似的格式),這比原始HTML更容易理解,並且不太可能改變。你應該沒有任何困難找到.Net RSS解析器。

+0

謝謝,但這不是我想要做的。 – ItsLockedOut 2012-01-06 04:12:51

+0

@iKunu - 您可以編輯問題並準確解釋您需要什麼,以及爲什麼這不能解決問題? RSS是從網站獲取故事的首選方式... – Kobi 2012-01-06 14:44:24

+0

:我需要對所有故事進行一些剪裁操作......這就是爲什麼我需要從網頁上抓取它們。但是現在我找到了一種方法來做到這一點。謝謝 – ItsLockedOut 2012-01-07 03:17:08

1

我有使用

更多的「從」條款在LINQ

提取的聯繫方式,我可以使用

var infos = from info in document.DocumentNode.SelectNodes("//div[@class='article-listing']") 
       from link in info.SelectNodes("h4//a").Where(x => .Attributes.Contains("href")) 

       select new 
       { 
       LinkURL = link.Attributes["href"].value 
       }; 

這樣的鏈接,圖像可以被獲取。

謝謝...現在沒有問題