Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
com.fleeksoft.ksoup:ksoup
Advanced tools
Ksoup is a Kotlin Multiplatform library for working with HTML and XML, and offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM and CSS selectors.
Ksoup is a Kotlin Multiplatform library for working with real-world HTML and XML. It's a port of the renowned Java library, jsoup, and offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM and CSS selectors.
Ksoup implements the WHATWG HTML5 specification, parsing HTML to the same DOM as modern browsers do, but with support for Android, JVM, and native platforms.
Ksoup is adept at handling all varieties of HTML found in the wild.
Include the dependency in commonMain
. Latest version
Ksoup published in four variants. Pick the one that suits your needs and start building!
This variant is built without any external IO or Network dependencies. Use this if you want to parse HTML from a string.
implementation("com.fleeksoft.ksoup:ksoup-lite:<version>")
This variant built with kotlinx-io and Ktor 3.0.0-rc-1
implementation("com.fleeksoft.ksoup:ksoup:<version>")
// Optional: Include only if you need to use network request functions such as
// Ksoup.parseGetRequest, Ksoup.parseSubmitRequest, and Ksoup.parsePostRequest
implementation("com.fleeksoft.ksoup:ksoup-network:<version>")
This variant is built with korlibs-io
implementation("com.fleeksoft.ksoup:ksoup-korlibs:<version>")
// Optional: Include only if you need to use network request functions such as
// Ksoup.parseGetRequest, Ksoup.parseSubmitRequest, and Ksoup.parsePostRequest
implementation("com.fleeksoft.ksoup:ksoup-network-korlibs:<version>")
This variant built with kotlinx-io and Ktor 2.3.12
implementation("com.fleeksoft.ksoup:ksoup-ktor2:<version>")
// Optional: Include only if you need to use network request functions such as
// Ksoup.parseGetRequest, Ksoup.parseSubmitRequest, and Ksoup.parsePostRequest
implementation("com.fleeksoft.ksoup:ksoup-network-ktor2:<version>")
This variant built with okio and Ktor 2.3.12
implementation("com.fleeksoft.ksoup:ksoup-okio:<version>")
// Optional: Include only if you need to use network request functions such as
// Ksoup.parseGetRequest, Ksoup.parseSubmitRequest, and Ksoup.parsePostRequest
implementation("com.fleeksoft.ksoup:ksoup-network-ktor2:<version>")
NOTE: Variants built with kotlinx do not support gzip files.
For API documentation you can check Jsoup. Most of the APIs work without any changes.
val html = "<html><head><title>One</title></head><body>Two</body></html>"
val doc: Document = Ksoup.parse(html = html)
println("title => ${doc.title()}") // One
println("bodyText => ${doc.body().text()}") // Two
This snippet demonstrates how to use Ksoup.parse
for parsing an HTML string and extracting the title and body text.
//Please note that the com.fleeksoft.ksoup:ksoup-network library is required for Ksoup.parseGetRequest.
val doc: Document = Ksoup.parseGetRequest(url = "https://en.wikipedia.org/") // suspend function
// or
val doc: Document = Ksoup.parseGetRequestBlocking(url = "https://en.wikipedia.org/")
println("title: ${doc.title()}")
val headlines: Elements = doc.select("#mp-itn b a")
headlines.forEach { headline: Element ->
val headlineTitle = headline.attr("title")
val headlineLink = headline.absUrl("href")
println("$headlineTitle => $headlineLink")
}
//Please note that the com.fleeksoft.ksoup:ksoup-network library is required for Ksoup.parseGetRequest.
val doc: Document = Ksoup.parseGetRequest(url = "https://en.wikipedia.org/") // suspend function
val metadata: Metadata = Ksoup.parseMetaData(element = doc) // suspend function
// or
val metadata: Metadata = Ksoup.parseMetaData(html = HTML)
println("title: ${metadata.title}")
println("description: ${metadata.description}")
println("ogTitle: ${metadata.ogTitle}")
println("ogDescription: ${metadata.ogDescription}")
println("twitterTitle: ${metadata.twitterTitle}")
println("twitterDescription: ${metadata.twitterDescription}")
// Check com.fleeksoft.ksoup.model.MetaData for more fields
In this example, Ksoup.parseGetRequest
fetches and parses HTML content from Wikipedia, extracting and printing news headlines and their corresponding links.
Ksoup is an open source project, a Kotlin Multiplatform port of jsoup, distributed under the Apache License, Version 2.0. The source code of Ksoup is available on GitHub.
For questions about usage and general inquiries, please refer to GitHub Discussions.
If you wish to contribute, please read the Contributing Guidelines.
To report any issues, visit our GitHub issues, Please ensure to check for duplicates before submitting a new issue.
Platform | Status | Notes |
---|---|---|
Android | Stable | |
JVM | Stable | |
iOS | Stable | |
JS | Alpha | |
WasmJs | Alpha | not supported with ktor2 |
Native MacOS | Alpha | |
Linux | Experimental | |
Native Windows | Experimental |
Copyright 2023 Sabeeh Ul Hussnain
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
FAQs
Unknown package
We found that com.fleeksoft.ksoup:ksoup demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.