代码之家  ›  专栏  ›  技术社区  ›  Iain Samuel McLean Elder

Web抓取:如何从文本链接获取抓取程序实现?

  •  0
  • Iain Samuel McLean Elder  · 技术社区  · 15 年前

    我正在构建一个Java Web媒体擦除应用程序,用于从各种流行网站中提取内容:YouTube、脸谱网、RaqDeStand等等。

    应用程序将包含一个搜索功能来查找内容URL,但还应允许用户将URL粘贴到应用程序中(如果他们已经在媒体所在的位置)。 Youtube Downloader 已经为各种视频网站做了这项工作。

    当程序提供一个URL时,它决定使用哪种scraper来获取内容;例如,YouTube Watch链接返回Youtubescraper,Facebook Fanpage链接返回Facebookscraper等等。

    我应该用工厂模式来做这个吗?

    我的想法是工厂有一个公共方法。它接受一个表示链接的字符串参数,并返回scraper接口的适当实现。我想工厂会保存一个scraper实现的列表,并将链接与每个scraper匹配,直到找到合适的一个。如果没有合适的,它会抛出一个异常。

    2 回复  |  直到 15 年前
        1
  •  0
  •   Thorbjørn Ravn Andersen    15 年前

    听起来是个好主意。您很可能需要一个带有create(url url)方法的singleton。我建议您使用TDD来实现这一点,以使您的需求在您的头脑中更加清晰。

        2
  •  0
  •   Dishayloo    15 年前

    退货的工厂会很好的。为了概括这种尝试,我建议使用一个映射来保存实现,即:

    Map<String, Class<Scraper>> scrapers = new HashMap<String, Scraper>();
    scraper.put("facebook.com", FacebookScraper.class);
    ...
    

    稍后,您可以使用映射的键检查URL,并为该内容实例化正确的类。