{"id":20827942,"url":"https://github.com/esafirm/skrape","last_synced_at":"2025-05-07T21:05:55.360Z","repository":{"id":56547920,"uuid":"96767618","full_name":"esafirm/skrape","owner":"esafirm","description":"Kotlin DSL to scrape HTML and convert it to JSON ","archived":false,"fork":false,"pushed_at":"2021-07-18T08:55:55.000Z","size":234,"stargazers_count":31,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-07T21:05:49.628Z","etag":null,"topics":["dom","dsl","json","scraper"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esafirm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-10T10:59:03.000Z","updated_at":"2024-09-19T11:26:19.000Z","dependencies_parsed_at":"2022-08-15T20:40:49.670Z","dependency_job_id":null,"html_url":"https://github.com/esafirm/skrape","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fskrape","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fskrape/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fskrape/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esafirm%2Fskrape/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esafirm","download_url":"https://codeload.github.com/esafirm/skrape/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252954427,"owners_count":21830903,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dom","dsl","json","scraper"],"created_at":"2024-11-17T23:13:25.516Z","updated_at":"2025-05-07T21:05:55.335Z","avatar_url":"https://github.com/esafirm.png","language":"Kotlin","funding_links":["https://ko-fi.com/M4M41RRE0'"],"categories":[],"sub_categories":[],"readme":"![OSS Skrape Banner](https://user-images.githubusercontent.com/1691440/126060801-fc14e96d-d800-4fa6-be92-eb49847eb112.gif)\n\n## Skrape [![](https://jitpack.io/v/esafirm/skrape.svg)](https://jitpack.io/#esafirm/skrape)\n\nTurn your HTML to JSON with graph based Kotlin DSL 💪\n\n# Support Me!\n\nI would make myself more commited to this repo and OSS works in general.\n\nWould you help me achieving this goals?\n\n\u003ca href='https://ko-fi.com/M4M41RRE0' target='_blank'\u003e\u003cimg height='36' style='border:0px;height:36px;' src='https://cdn.ko-fi.com/cdn/kofi4.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com' /\u003e\u003c/a\u003e\n\n## Getting Started\n\nDefine your query in type-safe Kotlin DSL  \n\n```kotlin\nPage(\"https://news.ycombinator.com/\") {\n    \"items\" to query(\"td a.storylink\") {\n    \"text\" to text()\n      \"info\" to container {\n        \"link\" to attr(\"href\")\n      }\n    }\n  }.run {\n    Skrape(JsoupDocumentParser()).request(this)\n  }\n```\nTo predictable JSON result\n\n```javascript\n{\n    \"items\": [\n        {\n            \"text\": \"SFO near miss could have triggered \\u2018greatest aviation disaster in history'\",\n            \"detail\": {\n                \"link\": \"http://www.mercurynews.com/2017/07/10/exclusive-sfo-near-miss-might-have-triggered-greatest-aviation-disaster-in-history/\"\n            }\n        },\n        {\n            \"text\": \"Taking control of all .io domains with a targeted registration\",\n            \"detail\": {\n                \"link\": \"https://thehackerblog.com/the-io-error-taking-control-of-all-io-domains-with-a-targeted-registration/\"\n            }\n        }\n    ]\n    ...\n}\n```\n\n## Binaries\n\nAdd to your root `build.gradle` \n\n```groovy\nallprojects {\n    repositories {\n        ...\n        maven { url 'https://jitpack.io' }\n\t}\n}\n```\n\nThen add the dependency\n\n```groovy \ndependencies {\n    compile 'com.github.esafirm:skrape:x.y.z'\n}\n```\n\nWhere `x.y.z` is the latest release (can be viewed from [Github release page](https://github.com/esafirm/skrape/releases) or Badge.\n\n## License\n\n[MIT](https://github.com/esafirm/skrape/blob/master/LICENSE)\n     \n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesafirm%2Fskrape","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesafirm%2Fskrape","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesafirm%2Fskrape/lists"}