我正在尝试用C#编写HTML解析器。我需要从10个赌博网站获取数据。我想弄清楚什么是最好的方法。 起初,我想写一个用switch语句解析所有网站的大功能,但我认为这是一种矫枉过正。太长了。我使用HTML敏捷包,因此每个实现都会有类似但不同的结构。
实施这种结构的最佳方法是什么?
答案 0 :(得分:1)
创建一个包含公共部分的基类,并为每个不同的解析器创建一个子类。从解析器更改为解析器的函数可以声明为abstract
,因此必须在不同的子类中重写它们。
答案 1 :(得分:1)
你可以实现一个strategy模式,这将是一个Abstract
类(可能有一些共享方法),每个Concrete
类实现并覆盖{ {1}}方法。使用Factory方法,您可以选择适当的Concrete类来调用HTML(可能取决于站点URL或某些配置)。
答案 2 :(得分:0)
有很多方法可以解决这个问题。作为一个开始简单的人,我将实现一个网站/解析器组合。 然后看看什么是常见的。 他们都有一个网址。 他们都会有一些Parse thingy 大概你想要从每一个中提取相同类型的信息。 然后你想用这些信息做点什么。
这表明网站课程 用于浏览网站并获取页面的课程 解析类 解析信息类。
你可以使用继承,虽然我的第一个想法是一个接口。 无论哪种方式,您最终都应该使用一组要解析的网站,每个网站都由它自己的实例描述。
从那里你可以简单地做一个foreach,你可以安排,你可以并行完成它们。更重要的是,你可以添加和删除目标,当其中一个人在他们的网站上徘徊或者下降时,继续攻击其他目标......
通过一个站点证明您的想法,用两个站点证明您的基础架构,并在其他站点上进行攻击,同时部署一些可行的内容,看看现实世界中是否有任何您未曾想到的事情。
大爆炸是制造宇宙,而不是应用。