浅谈python爬取数字书苑图书

疫情期间,大家都只能在家中线上学习,这种情况下,教材就成了一个问题。好在,一大批数据库都已经面向社会部分开放,我们可以实现教材的在线阅读。但是,这样的在线阅读不能在pdf上做笔记,尤其对于goodnotes深度用户(比如我)来说就有点不太友好。
作为一名python业余爱好者(自从打过美赛之后再也不敢说自己熟练python和MATLAB了),第一个想到的就是如何把图书从网站上爬下来。当然,最开始我的尝试是失败了的,不过在我把我的想法跟圈内人聊过之后我一个朋友用一种很秀的方式实现了这一个玩法。询问得知在urllib库里面有一个urlretrieve函数可以实现将url对应的图片下载到本地的功能,然后由于数字书苑系统的图书是一种png图片播放器框架,它的图片可以保存到本地,也有对应的规律的url,从而存在爬取的可能。经过不懈努力之后我成功把这个功能在python 3.7.6上实现了(朋友最初的版本是py2的😂)
话不多说,先放代码

# 20200311 JamesBourbon

from urllib.request import urlretrieve
import time
import os

# 操作:(python3环境)
# 将数字书苑的图书在chrome打开
# 在检查中找到img src项,将其url弄下来
# (此工作成熟期可用bs4完成)
# 此url中有一个pageid=1,将数字换成{}
# 此字符串为参数url,页码尾数为tail_id, 保存文件夹目录为dirpath
# 参数输入到函数szsy_get中即可

# 化工原理上
# url = 'http://cebxol.apabi.com/command/imagepage.ashx?ServiceType=Imagepage&objID=m.20181009-HXGY-XRTO-0449.ft.cebx.1&metaId=m.20181009-HXGY-XRTO-0449&OrgId=iyzhi&username=iyzhi&rights=1-0_00&time=2020-03-08+13%3A20%3A58&sign=7B27C3449E3D2814F6FB948CF0A7273E&pageid={}&width=3284&height=1734'
# 化工原理下
# url = 'http://cebxol.apabi.com/command/imagepage.ashx?ServiceType=Imagepage&objID=m.20181009-HXGY-XRTO-0449.ft.cebx.1&metaId=m.20181009-HXGY-XRTO-0449&OrgId=iyzhi&username=iyzhi&rights=1-0_00&time=2020-03-05+13%3A45%3A50&sign=2DDF187FD2C7BA71C451F5ECD85751C5&pageid={}&width=2732&height=1170'
# 有机化学
url = 'http://cebxol.apabi.com/command/imagepage.ashx?ServiceType=Imagepage&objID=m.20181203-HXGY-RXJC-0307.ft.cebx.1&metaId=m.20181203-HXGY-RXJC-0307&OrgId=iyzhi&username=iyzhi&rights=1-0_00&time=2020-03-12+21%3A54%3A01&sign=699186CCE8AD626EE29968EF9310D7D1&pageid={}&width=3840&height=1794'

# 以上链接均有可能过期,建议重新打开数字书苑重新捕捉链接

tail_id = 528
dirpath = 'download_test'


def szsy_get(url, tail_id, dirpath):
    # 连续爬取图片,从而构成pdf
    print('start {}'.format(dirpath))
    if os.access(dirpath, os.R_OK) == False:
        os.makedirs(dirpath)
    try:
        for i in range(tail_id):
            url_use = url.format(i+1)
            # 数字书苑的img src框架目标,其中只有pageid从1到末尾
            urlretrieve(url_use, "{}/{}.png".format(dirpath,i+1))
            # time.sleep(0.1)
            print('{} Done'.format(i+1))
    except:
        print('failed somehow')

szsy_get(url, tail_id, dirpath) 

具体操作在注释里面写的很完全了,不过自己还想再新手向一点。因为本人的前端技术也贼菜,找个url还花了半天,也算是自用向记录吧

  1. 在数字书苑中找一本书,开始阅读,然后用共享方法发送到文本传输助手,在桌面打开电脑上用浏览器打开,如图:

    2
    image
    在这里插入图片描述

    image
  2. 在电脑上成功用浏览器打开之后(建议谷歌),右键”检查“,打开html框架代码,从中找到对应图片的url,一般在img src处。如果右键支持在新窗口打开图片的话也可以,两者指向同一个url


    image
  3. 将这个url拷贝下来,里面会有个pageid=1(或其他数字),显然,这个1即是页码,接下来就利用python强大的字符串处理功能遍历每一个页码,完成图片爬取,将图片组合成pdf,我们就可以得到我们想要的教材的电子版啦!
    希望这个方法能帮到大家线上学习!
    声明:此方法爬取的电子书仅用于学习交流,不会用于商业用途,也请使用此代码爬取图书的朋友们重视版权保护,切忌将此代码用于商业用途,否则后果自负!
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,230评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,261评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,089评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,542评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,542评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,544评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,922评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,578评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,816评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,576评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,658评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,359评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,920评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,859评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,381评论 2 342

推荐阅读更多精彩内容