测试LinkParseFilter

时间:2018-10-04 11:09:42

标签: web-crawler stormcrawler

我想知道是否有一种快速的方法来对LinkParseFilter配置进行单元测试。

例如,如果我有一个parsefilter文件,其中指定了LinkParseFilter,如下所示:

...
    {
      "class": "com.digitalpebble.stormcrawler.parse.filter.LinkParseFilter",
      "name": "MyGalleryParseFilter",
      "params": {
        "thumbnails": "substring-before(substring-after(//a[@class='thumbnail']/span/@style, 'background-image: url('), ')')",
        "gallery": "//div[@class='browse']//a/@href",
        "interesting": "//ul[@class='also-interesting']//a/@href",
        "original": "//div[@id='original-image-frame']//a/img/@src"
      }
    },
...

用一些示例页面内容进行单元测试以确认其是否提取了我想要的最快方法是什么?

1 个答案:

答案 0 :(得分:0)

一种选择是像the core module中那样编写单元测试,您需要将页面的副本保存在 src / test / resources / 中。但是,这假设FetcherBolt返回的内容与您存储的页面的副本相同,但不一定如此。

您还可以修改拓扑或编写自定义拓扑,以与MemorySpout使用相同的配置。原型的拓扑是一个很好的起点,因为StdOutStatusUpdater将打印出所有找到的URL。使用Eclipse(或您选择的编辑器)在调试模式下运行它也有帮助。

是否可能有一个URL过滤器删除了您刚刚创建的外链?