2012-01-05 10 views
1

私はそのようなthenextweb.com、mashable.comとreadwriteweb.comなどとしてトップの技術のウェブサイトを掻き取るウェブサイトを設計するC#でhtmlagilitypackを使用してWebページからリンクと投稿を抽出する方法は?

今すぐHtmlの敏捷性パックを使用してスクラップする一つの方法は、1つのウェブサイトが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フィードが必要です。少なくとも類似

<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

フィードが同じ形式である必要があります(または:たとえば、次のWebは、これらのタグ(あなたが本当に、単にURLをタグを必要としない)を持っています形式)は、生のHTMLよりもはるかに理解しやすく、変更される可能性は低いです。 .Net RSSパーサーを見つけるのに何の問題もないはずです。私はこの方法でリンクに

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 
       }; 

を使用することができますLINQでの句

「から」

以上を使用してリンクを抽出する方法を持っている

+0

ありがとうございますが、これは私がやりたいことではありません。 – ItsLockedOut

+0

@iKunu - あなたは質問を編集して、必要なものを正確に説明することができます。なぜこれが問題を解決していないのですか? RSSは、サイトからのストーリーを得るための好ましい方法です。 – Kobi

+0

:私はすべてのストーリーでやる必要があるいくつかのカットムーミングがあります...それが私がウェブページからそれらをフェッチする必要がある理由です。しかし、今私はそれを行う方法を見つけました。ありがとう – ItsLockedOut

1

、画像を取り出すことができます。

ありがとう...今問題なし

関連する問題