gpt4 book ai didi

c# - 在 ASP.NET 中从 URL 获取文本

转载 作者:太空狗 更新时间:2023-10-29 17:55:42 24 4
gpt4 key购买 nike

我正在寻找一种在给定网址的情况下在 ASP.NET/C# 中提取文本的可靠方法。谁能给我指出正确的方向?

此外,网址可以是一个新闻站点,其中可能有很多广告和菜单等。我需要一些智能方法来仅提取相关内容。不确定如何做到这一点,因为我将如何定义相关性?

我应该从 RSS 提要中阅读吗?对此有什么想法吗?

编辑我已经添加了赏金。我希望从 URL 中提取“相关”文本。从“相关”我的意思是,它应该从广告中排除文本(和其他不相关的信息)。输入将类似于新闻站点。我只需要提取新闻信息并删除无关的文本

最佳答案

一旦您下载了页面,并开始使用像 HTML Agility Pack 这样的库来解析 html,您的工作就开始了:)

屏幕抓取分为两部分。

首先是 webcrawler(网络上有很多关于此的信息,以及一些其他答案提供的 WebClient 此处提供的简单代码)。爬虫必须遍历链接并下载页面。如果您要下载很多页面并且有起始 url,您可以自己滚动或使用现有的。查看Wikipedia获取开源网络爬虫/蜘蛛列表。

第二部分是解析 html 并仅提取您想要的文本,并忽略任何噪音(页眉、横幅、页脚等)。仅使用现有库遍历 DOM 很容易,而弄清楚如何处理您解析的内容是困难的部分。

我之前在另一个 SO question 上写过一些关于它的文章它可能会给你一些想法如何手动抓取你想要的内容。根据我的经验,没有 100% 的方法可以找到页面的主要内容,而且通常情况下你需要手动给它一些指示。困难的部分是,如果页面的 html 布局发生变化,那么您的屏幕抓取工具将开始失败。

您可以应用统计数据并比较多个页面的 html,以推断出广告、菜单等的位置,从而消除这些。

既然你提到了新闻网站,那么与从原始 html 中解析出文本相比,还有两种其他方法应该更容易应用于这些网站。

  1. 检查页面是否有打印 url。例如。 CNN 上的链接具有等效的打印 url,更容易解析。
  2. 检查页面是否有 RSS 表示,并改为从 RSS 提要中选择文章文本。如果提要不包含所有内容,它应该会为您提供足够的文本以在完整的 html 页面中找到该文本。

另请查看 The Easy Way to Extract Useful Text from Arbitrary HTML有关如何创建更通用的解析器的输入。代码是用 Python 编写的,但您应该能够毫不费力地转换它。

关于c# - 在 ASP.NET 中从 URL 获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2256290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com