我用 C# 开发了一个软件,使用 Windows 窗体来抓取选定的网站以获取图像。
我遇到的第一个问题是我监控的网站不断地改变它们的外观和感觉,从而使我的代码需要更新。我已经切换到使用 XPaths 来隔离我要查找的 div,但是 div id 也发生了变化。我曾考虑为软件将通过的每个站点使用带有 div xpath 的文本文件,从而节省了我编辑和重新编译代码的时间。有没有更好的方法来解决这个问题?也许 CodeDom ?
其次,由于每个网站都使用不同的格式和编码,我不得不用 HtmlDocument、HtmlWebResponse、HtmlNodes 等为每个网站重写部分代码,这最终占了我代码的近一半。我无法将它们放在一起,因为有些需要额外的刮擦和分页,有些则不需要。有没有办法简化这个问题?
最后,我将整个代码放在一个包含大约 600 行代码的类文件中。我拥有的唯一方法是后台工作程序、ui 事件处理程序、每个站点的抓取方法以及保存图像的一种方法。将整个代码放在一个类中可以吗?当我使用 Java 编写代码时,我经常使用多个类并将它们称为对象,这有助于更轻松地更改特定部分。我可以用 C# 做同样的事情吗?
有没有更有效的方法来制作软件?我正在考虑为每个站点创建一个类,以便可以直接对相关类进行修改,但这会导致在每个类中重复很多行。还是可以将整个文件放在一个类文件中?
谢谢。
PS:本软件仅供个人使用,但我认为这是一个学习和应用好的编程的好机会。