发布于 2016-01-20 05:57:12
爬行不仅仅是检索单个URI的内容。如果您只想检索某些页面的内容,那么使用类似Crawler4J之类的内容并没有真正的好处。
让我们来看看一个例子。假设你想爬一个网站。所需经费将是:
About页面有Home页面的链接,但是我们已经获得了Home页面的内容,所以不要再访问它)。Home页面检索50个URI。这是一个简单的场景。尝试用Jsoup解决这个问题。所有这些功能都必须由您实现。对于这个问题,Crawler4J或任何爬虫微框架都会或应该有上述操作的实现。当你决定如何处理内容时,Jsoup的强大品质就会发光。
让我们看一下解析的一些要求。
HTML规范的标记)这就是Jsoup来玩的地方。当然,这里有一些重叠之处。在Crawler4J或Jsoup中,有些东西可能是可能的,但这并不意味着它们是等价的。您可以删除从Jsoup中检索内容的机制,并且仍然是一个非常适合使用的工具。如果Crawler4J删除检索,那么它将失去一半的功能。
在现实生活中,我在同一个项目中使用了这两种方法。为了解决第一个例子中提到的所有问题,我利用了Crawler4J的优点,爬行了一个站点。然后,我将检索到的每个页面的内容传递给Jsoup,以便提取所需的信息。我能不能用一种或另一种?是的,我可以,但我必须实现所有缺失的功能。
因此,Crawler4J是一个爬行器,具有一些简单的解析操作(您可以在一行中提取图像),但是没有实现复杂的CSS查询。Jsoup是一个为HTTP请求提供简单API的解析器。对于任何更复杂的事情,都没有实现。
https://stackoverflow.com/questions/34888510
复制相似问题