1.10.2
or higher.go run main.go
.ferret/
folder.https://dzone.com/services/widget/assets-listV2/DEFAULT?hidefeat=true&page=XX&sort=downloads&type=refcard
, where XX
is 1
to XX
(until this empty response is returned: {"success":true,"result":{"data":{"assets":[],"sort":"downloads"}},"status":200}
). At the time of writing, there are 24
pages. See this example of the valid JSON response:{
"success": true,
"result": {
"data": {
"assets": [
<---------- OMITTED ---------->
{
"id": 520107,
"title": "GWT Style, Configuration and JSNI Reference",
"details": "Introduces Ajax, a group interrelated techniques used in client-side web development for creating asynchronous web applications.",
"subtitle": "Using the Google Web Toolkit",
"collaborators": "Jill Tomich",
"downloads": 29488,
"views": 115116,
"cover": "//dz2cdn3.dzone.com/storage/rc-covers/2806-dzone_refcard_.png",
"host": null,
"url": "/refcardz/gwt-style-configuration-and-js",
"tags": [
"frameworks",
"javascript",
"server-side",
"java",
"web dev",
"ajax & scripting"
],
"color": "purple",
"type": "refcard",
"pdf": "/asset/download/6",
"authors": [
{
"id": 327457,
"name": "Robert Hansen",
"avatar": "https://secure.gravatar.com/avatar/ae431e508cbc54620c27a0d612d4f93c?d=identicon&r=PG",
"url": "/users/327457/rhansen1392.html"
}
],
"saveStatus": {
"saved": false,
"canSave": true,
"count": 63
}
}
<---------- OMITTED ---------->
],
"sort": "downloads"
}
},
"status": 200
}
On each of these asset list websites, extract the following information from the returned JSON file:
'.result.data.assets[].title'
.'.result.data.assets[].pdf'
.Download the PDF by prefixing the PDF link with https://dzone.com
, creating e.g. https://dzone.com/asset/download/279342
and save it as <Title>.pdf
, e.g. GWT_Style,_Configuration_and_JSNI_Reference.pdf
Item | Size |
---|---|
Refcardz | 288 |
All files size | 000 B (GB) |
@luckylittle <lucian@redhat.com>