https://github.com/fcannizzaro/ksoup
Kotlin Wrapper for Jsoup
https://github.com/fcannizzaro/ksoup
jsoup kotlin-android kotlin-library pojo scraping
Last synced: 6 months ago
JSON representation
Kotlin Wrapper for Jsoup
- Host: GitHub
- URL: https://github.com/fcannizzaro/ksoup
- Owner: fcannizzaro
- License: apache-2.0
- Created: 2017-08-25T14:58:40.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-09-02T21:01:59.000Z (about 8 years ago)
- Last Synced: 2023-03-03T09:54:07.004Z (over 2 years ago)
- Topics: jsoup, kotlin-android, kotlin-library, pojo, scraping
- Language: Kotlin
- Homepage:
- Size: 276 KB
- Stars: 60
- Watchers: 4
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ksoup
Kotlin Wrapper for **Jsoup** using *Pojo* and *Delegated Properties*[](https://jitpack.io/#fcannizzaro/ksoup)
[](https://travis-ci.org/fcannizzaro/ksoup)
# Gradle Dependency
## Step 1.
Add the JitPack repository to your build file
```gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```## Step 2.
Add the dependency
```gradle
dependencies {
compile 'com.github.fcannizzaro:ksoup:1.0.4'
}
```# Usage
```kotlin
val html = Jsoup.connect("https://www.npmjs.com/").get()
val ksoup = Ksoup(html)/*
* Scrape!
*/val npm : NPM = ksoup.from(html, NPM())
// or
val packages: List = ksoup.fromList(html, Package())
```
See [Sample Code](https://github.com/fcannizzaro/ksoup/tree/master/app/src/main/java/com/fcannizzaro/ksoup/sample)
# Model
## IKsoup([query: String])
### afterBind
method called after object binding is completed.```kotlin
class Package : IKsoup(".item") {// properties
override fun afterBind() {
// called after object binding is completed.
}}
```# Delegated Methods
**trim** param is always **true**
## bindText(query: String, [trim: Boolean]) : String?
```kotlin
val title by bindText("head > title")
```## bindImage(query: String, [trim: Boolean]) : String?
```kotlin
val image by bindImage(".icon")
```## bindLink(query: String, [trim: Boolean]) : String?
```kotlin
val link by bindLink("a")
```## bindAttr(query: String, attr: String | KAttr, [trim: Boolean]) : String?
```kotlin
val checked by bindAttr("form > checkbox", KAttr.checked)
```## bindList(clazz: IKsoup) : List
```kotlin
val items : List by bindList(Package())
```## bindClass(clazz: IKsoup, parent: IKsoup) : T
```kotlin
class Package : IKsoup(".item") {class Info : IKsoup(".subitem") {
// Info properties
}// Package properties
val info: Info by bindClass(Info(), this)
}
```# Author
Francesco Saverio Cannizzaro (**fcannizzaro**)# License
```
Copyright 2017 Francesco Saverio CannizzaroLicensed 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 athttp://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.
```