c# - 只读取 HTML 文件的标题和/或 META 标签,不加载完整的 HTML 文件

标签 c# .net asp.net html webclient

场景:

我需要解析数百万个 HTML 文件/页面(尽我所能)然后只读取其中的标题或元部分并将其转储到数据库

我正在做的是使用 System.Net.WebClient 类的 DownloadString(url_path) 下载然后通过 LINQ To SQL 将其保存到数据库

但是这个DownloadString函数给了我完整的html源,我只需要Title部分和META标签部分。

有什么想法可以只下载那么多内容吗?

最佳答案

我想你可以用这个 url 打开一个流并使用这个流来读取前​​ x 个字节,我不能说出确切的数字,但我认为你可以将它设置为合理的数字以获得标题和描述。

HttpWebRequest fileToDownload = (HttpWebRequest)HttpWebRequest.Create("YourURL");
            using (WebResponse fileDownloadResponse = fileToDownload.GetResponse())
            {
                using (Stream fileStream = fileDownloadResponse.GetResponseStream())
                {
                    using (StreamReader fileStreamReader = new StreamReader(fileStream))
                    {
                        char[] x = new char[Number];
                        fileStreamReader.Read(x, 0, Number);
                        string data = "";
                        foreach (char item in x)
                        {
                            data += item.ToString();
                        }
                    }
                }
            }

关于c# - 只读取 HTML 文件的标题和/或 META 标签,不加载完整的 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931628/

相关文章:

C# 正则表达式帮助获取多个值

c# - 仅为公共(public)成员提取 xml 注释

c# - javascript + asp.net - 从 c# 调用 javascript 函数并传递一个对象

css - 无法将 Bootstrap 样式应用于 ASP :Button within Sharepoint

c# - 如何实现事件

c# - Process.Start 返回 null

.net - 在 VB 中创建匿名类型列表

asp.net - 如何在 .NET Core 中使用 .NET 4.6.1

c# - 为什么 ListBlobsSegmentedAsync 仅在第二页返回结果?

c# - 我应该在我的 MVVM 应用程序中使用 Microsoft.Practicies.Unity.IUnityContainer 吗?