我正在寻找一种在ASP.NET/C#中提供给定Web地址的文本的可靠方法.谁能指出我正确的方向?
此外,网址可以说是一个可能有很多广告和菜单等的新闻网站.我需要一些只提取相关内容的智能方式.不知道如何做到这一点我将如何定义相关性?
我应该从RSS提要中读取吗?有什么想法吗?
编辑我添加了赏金.我希望从URL中提取"相关"文本.从"相关"我的意思是,它应该从广告(和其他不相关的信息)中排除文本.输入将类似于新闻网站.我只需要提取新闻信息并删除无关的文本
下载页面并开始使用 HTML Agility Pack 等库来解析 html 后,您的工作就开始了:)
屏幕抓取分为两部分。
首先是网络爬虫(网上有很多关于这方面的信息,以及其他一些答案通过 WebClient 提供的简单代码)。爬虫必须遍历链接并下载页面。如果您要下载大量页面并拥有起始网址,您可以自行创建或使用现有的页面。查看维基百科以获取开源网络爬虫/蜘蛛的列表。
第二部分是解析 html 并仅提取您想要的文本,并忽略任何噪音(页眉、横幅、页脚等)。使用现有库遍历 DOM 很容易,但弄清楚如何处理您解析的内容才是困难的部分。
我之前在另一个SO 问题上写过一些关于它的内容,它可能会给你一些如何手动获取你想要的内容的想法。根据我的经验,没有 100% 的方法可以找到页面的主要内容,而且通常您需要手动给它一些指示。困难的部分是,如果页面的 html 布局发生变化,那么你的屏幕抓取工具将开始失败。
您可以应用统计数据并比较多个页面的 html,以推断出广告、菜单等的位置,从而消除这些内容。
既然您提到了新闻网站,那么与从原始 html 中解析出文本相比,还有两种其他方法应该更容易应用于这些网站。
另请查看从任意 HTML 中提取有用文本的简单方法,了解如何创建更通用的解析器。代码是 Python 语言,但您应该能够轻松转换它。
归档时间: |
|
查看次数: |
5474 次 |
最近记录: |