【发布时间】:2019-04-17 16:47:58
【问题描述】:
网络爬虫和解析器有什么区别?
在 java 中有一些用于获取库的名称。例如,他们将 nutch 命名为爬虫,将 jsoup 命名为解析器。
他们的目的是一样的吗?
他们在工作上是否完全相似?
谢谢
【问题讨论】:
标签: java web-crawler jsoup crawler4j
网络爬虫和解析器有什么区别?
在 java 中有一些用于获取库的名称。例如,他们将 nutch 命名为爬虫,将 jsoup 命名为解析器。
他们的目的是一样的吗?
他们在工作上是否完全相似?
谢谢
【问题讨论】:
标签: java web-crawler jsoup crawler4j
通过在维基百科上查找很容易回答:
解析器是一个接受输入数据的软件组件(通常 text) 并构建数据结构
https://en.wikipedia.org/wiki/Parsing#Computer_languages
网络爬虫,有时称为蜘蛛或蜘蛛机器人,通常 简称爬虫,是一种系统浏览的[互联网机器人] 万维网,通常用于 Web 索引(web 爬虫)。
【讨论】:
jsoup 库是一个用于处理实际 HTML 的 Java 库。它能够获取并使用 HTML。但是,它不是一般的网络爬虫,因为它一次只能获取一个页面(无需编写自定义程序 (=crawler) 使用 jsoup 来获取、提取和获取新网址)。
网络爬虫使用 HTML 解析器从之前获取的网站中提取 URL,并将这个新发现的 URL 添加到其 frontier。
网络爬虫的通用序列图可以在这个答案中找到:What sequence of steps does crawler4j follow to fetch data?
总结一下:
HTML 解析器是 Web 爬虫的必要组件,用于从给定的 HTML 输入中解析和提取 URL。但是,单独的 HTML 解析器不是网络爬虫,因为它缺乏一些必要的功能,例如维护以前访问过的 URL、礼貌等。
【讨论】: