【问题标题】:Crawler in Groovy (JSoup VS Crawler4j)Groovy 中的爬虫(JSoup VS Crawler4j)
【发布时间】:2014-08-13 20:36:50
【问题描述】:

我希望在 Groovy 中开发一个网络爬虫(使用 Grails 框架和 MongoDB 数据库),它能够爬取网站,创建网站 URL 列表及其资源类型、内容、响应时间和重定向次数涉及。

我正在讨论 JSoup 与 Crawler4j。我已经阅读了他们基本上所做的事情,但我无法清楚地理解两者之间的区别。任何人都可以建议对于上述功能哪个更好?或者将两者进行比较是完全不正确的?

谢谢。

【问题讨论】:

    标签: jsoup web-crawler crawler4j


    【解决方案1】:

    Crawler4J 是爬虫,Jsoup 是解析器。实际上,您可以/应该同时使用两者。 Crawler4J 是一个简单的多线程接口,可以获取您想要的站点的所有 url 和所有页面(内容)。之后,您可以使用 Jsoup 来解析数据,使用惊人的(类似 jquery 的)css 选择器并实际使用它做一些事情。当然,您必须考虑动态(javascript 生成)内容。如果您也想要该内容,那么您必须使用包含 javascript 引擎(无头浏览器 + 解析器)的其他东西,例如 htmlunitwebdriver (selenium),它将在解析内容之前执行 javascript。

    【讨论】:

    • 我也是这么想的。我实际上需要一个爬虫和一个解析器。 Crawler 可能是 crawler4j 但对于解析器我很怀疑。 JSoup 比其他解析器更“Groovier”。 Htmlunit 在几种情况下都失败了,这些情况有“任何琐碎的”javascript。此外,从用户评论来看,它显然适用于
    • 也许是 webdriver。我没用过,但听说过很棒的东西。
    • 我一直在研究将 selenium web 驱动程序与 JSoup 集成。感谢您的建议。
    • 我刚试过Jsoup,注意到它也可以用作爬虫——检索网页内容。因此,请您澄清Crawler4JJsoup 之间的区别。
    • Jsoup 有一个非常简单的接口来获取内容。这为您提供了一种实现爬虫的方法,但不会使 Jsoup 成为爬虫。它的主要目的是做爬取之后的事情,也就是解析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2012-08-08
    相关资源
    最近更新 更多