2012-01-05 34 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 
       }; 

这样的链接,图像可以被获取。

谢谢...现在没有问题