【问题标题】:How to design a web crawler in Java?如何用Java设计一个网络爬虫?
【发布时间】:2012-04-18 14:07:39
【问题描述】:

我正在做一个项目,该项目需要用 Java 设计一个网络爬虫,它可以获取用户对特定新闻主题的查询,然后访问不同的新闻网站,然后从这些页面中提取新闻内容并将其存储在一些文件中/数据库。我需要这个来总结整个存储的内容。我是这个领域的新手,所以希望有经验的人提供一些帮助。

现在我有从单个页面中提取新闻内容的代码,该页面手动获取页面,但我不知道如何将它集成到网络爬虫中以从不同页面中提取内容。

谁能提供一些Java教程或实现的好链接,我可以根据需要使用或修改它们吗?

【问题讨论】:

    标签: java web-scraping web-crawler


    【解决方案1】:

    http://jsoup.org/

    Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
    Elements newsHeadlines = doc.select("#mp-itn b a");
    

    【讨论】:

      【解决方案2】:

      除了其他答案之外,还有一点建议 - 确保您的爬虫尊重 robots.txt(即不会快速和不加选择地抓取网站),否则您可能会让您自己/您的组织被您想要访问的网站屏蔽访问。

      【讨论】:

        【解决方案3】:

        这里有一些大多数人会推荐的开源 Java 库,

        就其速度和易于配置而言,我个人最喜欢的是 Java Web Crawler。

        顺便说一句,如果它不是那么大,对于一个作业,如果你的源网站不经常更改,我建议你实现一个简单的 HTML 解析器。

        希望对你有帮助

        【讨论】:

          【解决方案4】:

          我发现this 文章在我阅读有关 Web Crawlers 时非常有用。

          它提供了开发多线程爬虫的分步指南。

          本质上,以下是爬虫应该做什么的一个非常高级的视图

          - Insert first URL in the queue
          
          Loop until enough documents are gathered:
             - Get first URL from the queue and save the document
             - Extract links from the saved document and insert them in the queue
          

          【讨论】:

            【解决方案5】:

            我建议您在这里查看我的答案:How can I bring google-like recrawling in my application(web or console)Designing a web crawler

            第一个答案是针对 C# 问题提供的,但它实际上是与语言无关的答案,因此它也适用于 Java。查看我在两个答案中提供的链接,有一些很好的阅读材料。我还要说你应该尝试一个已经existing java crawlers,而不是自己写一个(这不是一个小项目)。

            ...java 中的网络爬虫,它可以获取用户对特定新闻主题的查询,然后访问不同的新闻网站,然后从这些页面中提取新闻内容并将其存储在一些文件/数据库中。

            这个要求似乎超出了“只是一个爬虫”的范围,进入了机器学习和自然语言处理领域。如果您有一个确定它们为其提供新闻的网站列表,那么您可能能够提取新闻内容。然而,即便如此,您也必须确定网站的哪些部分是新闻,哪些不是(即可能还有链接、广告、cmets 等)。那么,您在这里究竟面临着什么样的要求?你有新闻网站的列表吗?你有可靠的方法来提取新闻吗?

            【讨论】:

              猜你喜欢
              • 2011-08-15
              • 2016-05-08
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-07-07
              • 1970-01-01
              • 2021-05-26
              • 1970-01-01
              相关资源
              最近更新 更多