从许多 HTML 页面中提取文本和标题的有效方法
efficient way to extract text and title from many HTML pages
我想知道从许多(1000 html 页)中提取文本并将从每个页面提取的每个文本存储为自己的 html 页面名称的有效方法,
方法是尽可能提取那些页面在谈论什么..
我已经过测试并看到了一些问题和答案..但是对于提取的纯文本来说效率不高,
对于以下示例..有很多信息,例如链接和格式代码、标签和其他我不感兴趣的信息..因此对于此页面
<html>
<title>Sport today and tomorrow </title>
<body>
<h1> sport players.</h1>
something....
<h3> sport plays </h3>
<img src="sport.jpg"/>
</body>
</html>
因此提取的信息存储在具有该页面名称的文本文件中,并且仅包含:
页面标题 = 运动 ...
内容 = 运动....
我的问题是有什么工具或软件可以做到这一点吗?
处理这个问题的字段名称是什么.. 像 DOM 或其他一些?
我会感谢任何人可以给我关于这个问题的注释。
我的编程语言是 C#.. 和 Matlab 谢谢
和AngleSharp
, you can get title element via IHtmlDocument.Title
and get heading elements using LINQ OfType<IHtmlHeadingElement>()
。以下是控制台应用程序中的示例:
using AngleSharp.Dom.Html;
using AngleSharp.Parser.Html;
....
var raw = @"<html>
<title>Sport today and tomorrow </title>
<body>
<h1> sport players.</h1>
something....
<h3> sport plays </h3>
<img src=""sport.jpg""/>
</body>
</html>";
var parser = new HtmlParser();
var document = parser.Parse(raw);
var title = document.Title;
var headings = document.All
.OfType<IHtmlHeadingElement>()
.Select(h => h.TextContent.Trim())
.ToList();
Console.WriteLine(title);
Console.WriteLine();
foreach (var heading in headings)
{
Console.WriteLine(heading);
}
输出:
Sport today and tomorrow
sport players.
sport plays
我想知道从许多(1000 html 页)中提取文本并将从每个页面提取的每个文本存储为自己的 html 页面名称的有效方法,
方法是尽可能提取那些页面在谈论什么.. 我已经过测试并看到了一些问题和答案..但是对于提取的纯文本来说效率不高,
对于以下示例..有很多信息,例如链接和格式代码、标签和其他我不感兴趣的信息..因此对于此页面
<html>
<title>Sport today and tomorrow </title>
<body>
<h1> sport players.</h1>
something....
<h3> sport plays </h3>
<img src="sport.jpg"/>
</body>
</html>
因此提取的信息存储在具有该页面名称的文本文件中,并且仅包含: 页面标题 = 运动 ... 内容 = 运动....
我的问题是有什么工具或软件可以做到这一点吗? 处理这个问题的字段名称是什么.. 像 DOM 或其他一些?
我会感谢任何人可以给我关于这个问题的注释。
我的编程语言是 C#.. 和 Matlab 谢谢
和AngleSharp
, you can get title element via IHtmlDocument.Title
and get heading elements using LINQ OfType<IHtmlHeadingElement>()
。以下是控制台应用程序中的示例:
using AngleSharp.Dom.Html;
using AngleSharp.Parser.Html;
....
var raw = @"<html>
<title>Sport today and tomorrow </title>
<body>
<h1> sport players.</h1>
something....
<h3> sport plays </h3>
<img src=""sport.jpg""/>
</body>
</html>";
var parser = new HtmlParser();
var document = parser.Parse(raw);
var title = document.Title;
var headings = document.All
.OfType<IHtmlHeadingElement>()
.Select(h => h.TextContent.Trim())
.ToList();
Console.WriteLine(title);
Console.WriteLine();
foreach (var heading in headings)
{
Console.WriteLine(heading);
}
输出:
Sport today and tomorrow
sport players.
sport plays