commit | 32d247d6f4ec66b10c32be2fb6d2f2666c2399bf | [log] [tgz] |
---|---|---|
author | Jonathan Hedley <[email protected]> | Thu Jun 01 18:47:59 2023 +1000 |
committer | Jonathan Hedley <[email protected]> | Thu Jun 01 18:47:59 2023 +1000 |
tree | d3d4c910e4f6cf98ab9570a72f89fb340d2344c2 | |
parent | d647bfb9c4ed4b2d9128c8614eacf6fafff54b1e [diff] |
Added a cost-based query planner for CSS selectors Simpler queries are executed before more complex queries, to improve performance. Notably, in a query like `div:has(p)`, the element under test is now first evaluated to match the `div` tag, before the deep `:has(p)` scan is executed. Previously it would be the other way around, as the And evaluator always performed a RTL execution. The initial costs are fairly arbitrary and may be tweaked if required upon further analysis.
jsoup is a Java library for working with real-world HTML. It provides a very convenient API for fetching URLs and extracting and manipulating data, using the best of HTML5 DOM methods and CSS selectors.
jsoup implements the WHATWG HTML5 specification, and parses HTML to the same DOM as modern browsers do.
jsoup is designed to deal with all varieties of HTML found in the wild; from pristine and validating, to invalid tag-soup; jsoup will create a sensible parse tree.
See jsoup.org for downloads and the full API documentation.
Fetch the Wikipedia homepage, parse it to a DOM, and select the headlines from the In the News section into a list of Elements:
Document doc = Jsoup.connect("https://en.wikipedia.org/").get(); log(doc.title()); Elements newsHeadlines = doc.select("#mp-itn b a"); for (Element headline : newsHeadlines) { log("%s\n\t%s", headline.attr("title"), headline.absUrl("href")); }
jsoup is an open source project distributed under the liberal MIT license. The source code is available on GitHub.
When used in Android projects, core library desugaring should be enabled to support Java 8+ features.
If you have any questions on how to use jsoup, or have ideas for future development, please get in touch via the mailing list.
If you find any issues, please file a bug after checking for duplicates.
The colophon talks about the history of and tools used to build jsoup.
jsoup is in general, stable release.