From dbdb434e9391af6c9e2ce6d2a238c81120deb4f5 Mon Sep 17 00:00:00 2001 From: simon987 Date: Tue, 14 May 2019 10:09:00 -0400 Subject: [PATCH] scrape1 post --- content/posts/scrape_1.md | 89 +++++++++++++++++++++++++++++++++++ static/scrape/dev_tools1.png | Bin 0 -> 32578 bytes static/scrape/dev_tools2.png | Bin 0 -> 20461 bytes static/scrape/dev_tools3.png | Bin 0 -> 7004 bytes 4 files changed, 89 insertions(+) create mode 100644 content/posts/scrape_1.md create mode 100644 static/scrape/dev_tools1.png create mode 100644 static/scrape/dev_tools2.png create mode 100644 static/scrape/dev_tools3.png diff --git a/content/posts/scrape_1.md b/content/posts/scrape_1.md new file mode 100644 index 0000000..826c107 --- /dev/null +++ b/content/posts/scrape_1.md @@ -0,0 +1,89 @@ +--- +title: "Web Scraping 101: E-Reader app" +date: 2019-05-13T10:46:34-04:00 +draft: false +--- + +Let's say you bought a textbook and it comes with +an online code that lets you read its online version. + +Of course that online version is tied to your account, it expires in 6 months and +is not compatible with your tablet browser. So what are you gonna do? Hack together a script +that takes screenshots of the pages? That's not a bad idea, but first let's see if we can +get through the e-reader's DRM. + +After logging into the app, I immediately open the dev tools and this is what I see: + +{{< figure src="/scrape/dev_tools1.png" title="">}} + +So, individual pdf pages are being read from this `getpdfpage` endpoint, rendered with a Javascript library and displayed in your browser +every time you flip a page in the app. + +This is what is sent to the endpoint: +``` +globalbookid: "" +pdfpage: ".pdf" +iscover: "N" +authkey: "" +hsid: "" +``` + +Obviously, the `globalbookid` is the unique ID of the book I am looking at. `pdfpage` is the ID of the page, there is +probably a way to get a list of those with another endpoint. `iscover` and `authkey` are self explanatory. So what exactly is +that `hsid` parameter? From what I can see, it is different for every request. + +Looking further, I find the `getpagedetails` endpoint, which does exactly what the name suggests: + +{{< figure src="/scrape/dev_tools2.png" title="/getpagedetails">}} + +Okay, so we have our authkey, the list of `pdfpage`s, and we know the `globalbookid`. Let's try to dig into the minified Javascript +code to find out how the `getpdfpage` endpoint is called. + +{{}} +var o = "".concat(e.serverDetails, "/ebook/pdfplayer/getpdfpage?globalbookid=") + "".concat(e.globalBookId, "&pdfpage=").concat(t.pdfPath, "&iscover=N&authkey=").concat(r), + i = o.replace("https", "http"), + c = Object(s.c)(l.b.MD5_SECRET_KEY + i); +o = "".concat(o, "&hsid=").concat(c), n.pdfPath = o, a.bookPagesInfo.pages.push(n) +{{}} + +Interesting... So the query URL is built by concatenating the different parameters together as you would expect but then a part of the +URL - everything but the mysterious `hsid` parameter - is put into a hash function and its result is the value of the `hsid` parameter. + +Without even looking at the `s.c` function it is becoming more and more obvious that the value of `hsid` is an MD5 hash of the whole query URL, +with `l.b.MD5_SECRET_KEY` as the salt. + +{{< figure src="/scrape/dev_tools3.png" title="MD5_SECRET_KEY hidden in plain sight">}} + +The secret code was hidden only a few keystrokes into the source. Now that we have all the puzzle pieces, + let's hack together a simple Python script to automate the download process: + +{{}} + +def get_page(page): + # Generate the 'hsid' verification hash + verification = hashlib.md5(("%s%s/ebook/pdfplayer/getpdfpage?globalbookid=%s&pdfpage=%s&iscover=N&authkey=%s" + % (MD5_SECRET, URL, BOOKID, page["pdfPath"], AUTHKEY)).encode()).hexdigest() + + r = requests.get("%s/ebook/pdfplayer/getpdfpage?globalbookid=%s&pdfpage=%s&iscover=N&authkey=%s&hsid=%s" + % (URL, BOOKID, page["pdfPath"], AUTHKEY, verification, )) + + print(r.status_code) + + # Write the raw pdf response to a file + with open(BOOKID + "_" + str(page["pageOrder"]) + "_" + page["bookPageNumber"] + ".pdf", "wb") as out: + out.write(r.content) + +# To save time, I manually saved the content of /getpagedetails to file +with open("book.json") as f: + for page in json.load(f)[0]["pdfPlayerPageInfoTOList"]: + get_page(page) + +{{}} + +To stitch the pages together, I used `pdfunite`: + +```bash +pdfunite $(ls -v) output.pdf +``` + +Now even if you wanted, you *couldn't even buy* a digital version of that book of that quality. diff --git a/static/scrape/dev_tools1.png b/static/scrape/dev_tools1.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fb27b7f42cf42312efbac9461b610557c3f7e9 GIT binary patch literal 32578 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 EUtH68PXGV_ literal 0 HcmV?d00001 diff --git a/static/scrape/dev_tools2.png b/static/scrape/dev_tools2.png new file mode 100644 index 0000000000000000000000000000000000000000..4f615a8b95b854763ff865ca23117348c87f1804 GIT binary patch literal 20461 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%0AOOOwz(<^>A8- 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 literal 0 HcmV?d00001