Skip to content

Instantly share code, notes, and snippets.

@zachwhalen
Last active April 16, 2024 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zachwhalen/aba883d83a31ecc1988da9e55adadf39 to your computer and use it in GitHub Desktop.
Save zachwhalen/aba883d83a31ecc1988da9e55adadf39 to your computer and use it in GitHub Desktop.
goodreads reviews to json
// this is intended to work in a browser console, after making selections with the goodreads reviews filter
reviews = document.getElementsByClassName("ReviewCard")
review_data = []
for (let r of reviews) {
review_object = {}
review_object['reviewer_url'] = (r.querySelector("a.Avatar") === undefined) ? "" : r.querySelector("a.Avatar").href;
review_object['reviewer_name'] = (r.querySelector(".ReviewerProfile__name a") === undefined) ? "" : r.querySelector(".ReviewerProfile__name a").textContent;
review_object['url'] = (r.querySelectorAll("[href*=show][href*=review]")[0] === undefined) ? "" : r.querySelectorAll("[href*=show][href*=review]")[0].href;
review_object['posted'] = (r.querySelectorAll("[href*=show][href*=review]")[0] === undefined) ? "" : r.querySelectorAll("[href*=show][href*=review]")[0].innerText;
review_object['rating'] = (r.querySelectorAll(".RatingStars")[0] === undefined) ? "" : parseInt(r.querySelectorAll(".RatingStars")[0].getAttribute("aria-label").replace("Rating ","").replace(" out of 5",""));
review_object['text'] = (r.querySelector(".Formatted") === undefined) ? "" : r.querySelector(".Formatted").innerText;
review_data.push(review_object)
}
review_data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment