C# 有趣的新闻文章/博客帖子抓取问题

C# 有趣的新闻文章/博客帖子抓取问题,c#,asp.net,C#,Asp.net,我需要刮去博客文章的文本,以建立一个类似techmeme.com的博客文章摘要描述。这不是一个问题,当它是一个或少数博客文章。然而,可以从博客中刮取文本的博客是可变的和无限的。你打算怎么做 我在过去使用过html敏捷包和yql,但这两种解决方案都没有内置任何东西来处理这一需求 我的一个想法是搜索div id和div属性,如内容、帖子、文章等,看看它们是如何工作的,而不是真正朝着这个方向。另一个想法是搜索html文档中最大的文本节点,并假设这就是我想要的节点——这可能会导致一些误报。最后一个想法是

我需要刮去博客文章的文本,以建立一个类似techmeme.com的博客文章摘要描述。这不是一个问题,当它是一个或少数博客文章。然而,可以从博客中刮取文本的博客是可变的和无限的。你打算怎么做

我在过去使用过html敏捷包和yql,但这两种解决方案都没有内置任何东西来处理这一需求

我的一个想法是搜索div id和div属性,如内容、帖子、文章等,看看它们是如何工作的,而不是真正朝着这个方向。另一个想法是搜索html文档中最大的文本节点,并假设这就是我想要的节点——这可能会导致一些误报。最后一个想法是努力在谷歌应用程序上创建一个众包数据存储库,让社区能够管理(阅读:创建、更新、删除)大多数流行新闻/博客平台的xpath映射,然后您可以按域或博客平台类型查询此列表,并获得所需的xpath,但这似乎是一个hella任务

当然,我知道你们中的一些人的想法比我任何愚蠢的想法都更有效


你的想法是什么?

唯一可靠的方法是为每个博客上一节课。这样,您就可以为每个特定的博客实现每个特定的类

因此,您将拥有一个抽象基类,用于处理博客并从博客返回所需的数据/信息

比如说

public abstract class BlogProcessor
{
  public abstract BlogResult ProcessBlog(string url);
}
其中,BlogResult是您定义的一种类型,它包含您从博客中需要的所有信息,如标题、日期、标记、帖子等

每个后代都知道如何提取博客专门用于的这些信息

如果您调用代码,您将以如下方式处理这些子类:

foreach(var url in BlogsToParse)
{
  var blogProcessor = BlogProcessorFactory.CreateInstance(url);
  var blogResult = blogProcessor.ProcessBlog(url);
  /* Do Something with blogResult */
}
这有意义吗


在每个“ProcessBlog”方法的实现中,可以使用HtmlAgilityPack进行特定的解析。

唯一可靠的方法是为每个blog创建一个类。这样,您就可以为每个特定的博客实现每个特定的类

因此,您将拥有一个抽象基类,用于处理博客并从博客返回所需的数据/信息

比如说

public abstract class BlogProcessor
{
  public abstract BlogResult ProcessBlog(string url);
}
其中,BlogResult是您定义的一种类型,它包含您从博客中需要的所有信息,如标题、日期、标记、帖子等

每个后代都知道如何提取博客专门用于的这些信息

如果您调用代码,您将以如下方式处理这些子类:

foreach(var url in BlogsToParse)
{
  var blogProcessor = BlogProcessorFactory.CreateInstance(url);
  var blogResult = blogProcessor.ProcessBlog(url);
  /* Do Something with blogResult */
}
这有意义吗


在每个“ProcessBlog”方法的实现中,您可以使用HtmlAgilityPack进行特定的解析。

我的想法是,我绝对不喜欢像这样重新发布原始作者内容的网站。你不仅试图从别人的工作中赚钱,而且还污染了搜索空间。别说了,克里斯,你以为你知道我们要做什么。住手。我们只是想得到一个类似于我上面提到的网站的摘要。阅读可能对你将来有所帮助。我的想法是,我绝对鄙视那些转载原创作者内容的网站。你不仅试图从别人的工作中赚钱,而且还污染了搜索空间。别说了,克里斯,你以为你知道我们要做什么。住手。我们只是想得到一个类似于我上面提到的网站的摘要。阅读可能对你将来有所帮助,但这行不通。我们不知道这些博客是什么。正如我所提到的,“可以从中获取文本的博客是可变的和无限的”。可变的和无限的并不意味着未知。也许你应该更清楚一点,在发帖前阅读你的问题?:)希夫,我们不可能每个博客都有课。这是不可能的。互联网上有数百万个博客。所以,在这种情况下,变量和无限肯定意味着未知。除非我们说的是另一种语言,否则不行。我们不知道这些博客是什么。正如我所提到的,“可以从中获取文本的博客是可变的和无限的”。可变的和无限的并不意味着未知。也许你应该更清楚一点,在发帖前阅读你的问题?:)希夫,我们不可能每个博客都有课。这是不可能的。互联网上有数百万个博客。所以,在这种情况下,变量和无限肯定意味着未知。除非我们说的是另一种语言。