译者:李睿
网站抓取(Scraping)是一门安全性比较薄弱的学科。人们经常使用服务器来解决,而调试和解决这些问题非常困难,至少现在是这样。
抓取采用现代浏览器构建的网站比十年前更具挑战性。jsoup是一个方便的API,它通过DOM遍历、CSS选择器、类似JQuery的方法等使抓取网站变得简单。但这并非没有挑战,因为每个抓取的API都可能是一颗定时炸弹。
现实世界的HTML是脆弱的。因为它不是一个文档化的API,所以会在没有通知的情况下进行更改。当Java程序在抓取方面失败时,可能就面临更多的麻烦。在某些情况下,这是一个简单的问题,可以在本地复制并部署。但在本地测试用例中,DOM树中的一些细微变化可能更难观察到。在这些情况下,需要在推动更新之前了解解析树中的问题。否则,开发的软件产品可能会损坏。
什么是jsoup?JavaHTML解析器
在深入了解调试jsoup的具体细节之前,先回答上面的问题,并讨论jsoup背后的核心概念。
jsoup网站将其定义为:jsoup是一个用于处理真实世界HTML的Java库。它使用HTML5DOM方法和CSS选择器提供了一个非常方便的API,用于获取URL以及提取和操作数据。
jsoup实现了WHATWGHTML5规范,并将HTML解析为与现代浏览器相同的DOM。
考虑到这一点,可以直接从同一个网站上获取一个简单的示例:
Java
复制
1Documentdoc=Jsoup.connect("