模块化编程以适应未来的变化(用于抓取网站的软件)

时间:2011-07-31 02:42:18

标签: c# recommendation-engine modular

我使用Windows Forms在C#中开发了一个软件,用于搜索所选网站的图像。

  1. 我遇到的第一个问题是我监控的网站不断改变其外观,从而使我的代码需要更新。我已经切换到使用XPath来隔离我寻找的div,但div id也会改变。我曾想过为软件可以读取的每个站点使用带有div xpath的文本文件,从而节省了编辑和重新编译代码的时间。有没有更好的方法来解决这个问题?也许是CodeDom?

  2. 其次,由于每个网站都使用不同的格式和编码,我不得不用HtmlDocument,HtmlWebResponse,HtmlNodes和其他每个网站重写部分代码,最终占据了我的代码的近一半。我不能把它们放在一起,因为有些需要额外的刮擦和分页,有些则不需要。有没有办法简化这个问题?

  3. 最后,我将整个代码放在一个包含大约600行代码的类文件中。我唯一的方法是backgroundworkers,ui事件处理程序,每个站点的抓取方法,以及一种保存图像的方法。将整个代码放在一个类中是否可以?当我以前用Java编写时,我常常使用多个类并将它们称为对象,这有助于更轻松地更改特定部分。我可以用C#做​​同样的事吗?

  4. 制作软件有更有效的方法吗?我正在考虑为每个站点创建一个类,以便可以直接对所讨论的类进行修改,但这会导致在每个类中重复很多行。或者将整个文件放在一个类文件中是否可以?

    感谢。

    PS:这个软件是供个人使用的,但我认为这是学习和应用优秀编程的好机会。

0 个答案:

没有答案