1、使用少量真实数据进行测试
1、插入网址及种子
首先是测试数据,在数据库的webpage表中插入两条当当网书城的网址,并将mark置为0,表示未处理:

同时在seeds表中插入两条种子元组(冯唐,无所畏)(李诞,笑场):
2、第一次遍历数据库并形成模式并查询模式形成页面
然后手动第一次运行代码,可以看到形成了一个模式,并通过这个模式在id为15的数据中找到了一些元组:
再来看此时的patterns表,已经成功插入了形成的模式:
webpage中id为15的数据也已经被标记处理:
通过该模式在该网页下找到了17条数据:
3、第二次遍历数据库利用模式进行查询
然后我们再手动执行一次代码,可以看到此时因为利用已经形成的模式,又在id为16的数据中查到了57条元组(因为处理顺序是id=16先处理,此时没有匹配的模式也没有利用种子查找到事件,所以第一次循环中被略过了):
接下来我们就可以利用爬虫向数据库中插入大量的书城网址及子网址(因为没有找到现成的合适的网站数据库,所以该步骤需要手动操作)
2、插入大量真实数据进行运行
1、插入255个页面和6个种子
首先通过爬虫插入一些网站及其子网站,这里总共爬取了共计255个页面:
然后插入6个元组:
2、运行代码形成模式,查找元组得到结果
接着运行代码,因为耗时较长,中途离开所以电脑熄屏可能终端掉了,不过再来看数据库中的内容,新增了6000多条数据和三个模式:
以下为新增的模式(开始的模式被我删掉了),同时也可以看见我们最初放在本地服务器上的测试用例也被找到了:
而加上前面插入少量真实测试数据,应该是四个模式及大量查询到的元组,而利用这三个模式(本地服务器形成的模式不算),基本上可以查寻到一万条以上的元组,因为运行时间可能较长,这里就不再赘述,至此,改进后的算法还算比较成功。