c# - 存储抓取数据的最简单方法

标签 c# database screen-scraping

我正在创建一个应用程序,它将在一种语言中搜索函数的文档并返回结果。目前,文档由一个页面组成,该页面链接到专用于所选功能的页面。我准备了一种使用 HTML Agility Pack 检索数据的方法。我还有一个算法来搜索关键字。我只需要一种存储数据的方法。对我来说,易用性比效率更重要,在这种情况下,因为应用程序只需要存储大约 75 条记录。

这是我提出的潜在解决方案列表:

  1. 系统.Data.SQLite
  2. CSV
  3. XML

我认为这些是大多数人会立即提出的解决方案。到目前为止,我已经尝试了解决方案 1,对于相对较少的记录,它似乎比必要的工作更多。

对于这个项目,您建议采用哪种存储方法?

最佳答案

如果数据集相对较小并且速度不是问题,我会选择 XML。如果您正确设计了您的类并且它是可序列化的,您可以只使用 Xml 序列化中的构建。

[Serializable]
public class MyDataStorage
{
    // some members

    public void Store( String filename )
    {
        XmlSerializer serializer = new XmlSerializer( typeof( MyDataStorage ) );
        using ( FileStream stream = File.OpenWrite( filename ) )
        {
            serializer.Serialize( stream, this );
        }
    }

    public static MyDataStorage Load(String filename )
    {
        XmlSerializer serializer = new XmlSerializer( typeof( MyDataStorage ) );
        object deserialized;
        using ( FileStream stream = File.OpenRead( filename ) )
        {
            deserialized = serializer.Deserialize( stream );
        }

        return (MyDataStorage) deserialized;
    }
}

关于c# - 存储抓取数据的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13107128/

相关文章:

c# - 在 MVC 核心 DI 中注册服务集合

javascript - 从数据库中获取最新5条数据

database - "slug"是什么意思

c# - HTMLAgilityPack 中的 XPath 选择不能按预期工作

c# - 从另一个类(class)收听 PropertyChanged

c# - 为什么我的 foreach 不工作?

c# - 尝试更新记录时出现 AngularJS 错误

database - 使用Mems麦克风计算环境噪声的功率水平

javascript - 如何抓取将所有交互都作为回发进行的 ASP.NET 站点?

multithreading - for 循环中的 PhantomJS Node