首页 > 其他分享 >【科学文库】书籍下载的曲折之路--福昕阅读器的图片接口

【科学文库】书籍下载的曲折之路--福昕阅读器的图片接口

时间:2023-01-15 20:24:48浏览次数:68  
标签:文库 -- 科学 接口 阅读器 福昕 图片 fileid

一、前言

科学文库使用福昕的在线阅读模式!

之前我写过一个JS脚本用来获取科学文库的电子书,但是随着接口的失效,再维护那个脚本便没有多大意义。在通过对之前方法的重新梳理,我找到了新的接口,通过爬虫获取图片的方式把每一页的图片获取至本地,再合成为一个PDF文件。但这个思路的难点在于:图片的接口,而不是如何合成PDF(这个网上有很多教程)。

说到底,这个帖子只是提供了一个图片的接口,而不是提供一个完整得到电子书的方法。

二、接口

https://wkobwp.sciencereading.cn/asserts/***fileid***/image/***num***/100

参数有fileid和num两个,num为从0开始的序数,下面主要介绍fileid的获取

 由于科学文库书籍的在线预览功能是福昕阅读器提供的,所以存在以下关系:科学文库的id----POST请求----福昕的fileid。在我上一篇的文章中,我通过Ajax提供POST请求,这次为了方便发挥Python爬虫的优势,提供一个Python获取fileid的方式

# 科学文库书籍图片--fileid方式
# encoding=utf-8
import re
import requests

headers = {
    "User-Agent":
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1"
}

url = input("请输入链接:")
# 格式形如:https://book.sciencereading.cn/shop/book/Booksimple/show.do?id=***
bookid = re.findall(r'(?<=id=)(.*)', url)# 获取链接上id的值
data = 'params=%7B%22params%22%3A%7B%22file%22%3A%22http%3A%2F%2F159.226.241.32%3A81%2F' + bookid[0] + '.pdf%22%7D%7D'
r = requests.post("https://wkobwp.sciencereading.cn/api/file/add", headers=headers, params=data)# POST请求
fileid = re.findall(r'(?<=\"result\"\:\").*(?=\")', r.text)
print(fileid[0])

执行此代码即可获得fileid,将其放入接口中,如果没有显示就多刷新几次,两个参数都正确即可得到清晰的图片。

三、写在结束之前

对于我来说,解题方法比得到答案更激动人心,我暂时还没有需要下载电子书的需求,就不去把这个项目完善了,或许以后会慢慢完善,但还不是现在。

来博客园将近一年了,因为我本身并不是计算机专业出身,只是出于爱好和生活上的需要才会用编程来解决问题,所以更新的频率很低,而且在大学的上课时间一般都挺无聊,想不出什么好的点子,所以下一次更新永远是未知的。

 

标签:文库,--,科学,接口,阅读器,福昕,图片,fileid
From: https://www.cnblogs.com/harl02/p/17054009.html

相关文章

  • py教学之集合
    集合的概念集合(set)是一个无序的不重复元素序列。可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典......
  • 非对称加密算法
    非对称加密密钥是成对出现的公钥:publickey,公开给所有人,主要给别人加密使用私钥:secretkey,privatekey自己留存,必须保证其私密性特点:用公钥加密数据,只能使用与之配对......
  • 每日食词—day103
    lookupn.查找、检查、查询startern. adj.启动器、启动机goaln. v.目标、目的、球门frameworkn.框架、构架、架构、结构enablev.开启、有效、使能够......
  • 多态
    1.一个对象的实际类型是确定的2.可以指向的引用类型就不确定了;父类的引用指向子类3.子类能调用的方法都是自己的或者继承父类的!4.父类型,可以指向子类,但是不能调用子类独......
  • 哈希算法
    哈希算法:将任意数据缩小成固定大小的“指纹“,称为:digest常见算法:md5:128bits、sha1:160bits、              Sha224、sha256、sha384、sha512hash(da......
  • linux学习笔记
    如何创建ubanto网上的教程已经很多了我使用virtualbox自己创建了一个虚拟机中文包安装遇到了语言问题,安装的时候默认语言没有中文找到了一个中文语言包教程......
  • Gateway开发教程之配置uri的三种方式
    Gateway路由一共有三种uri的配置方式,下面我们会逐一介绍一下。http方式http方式,自然指的是可以转发任意http链接,比如可以配置以下这样:routes:-id:demo_router#......
  • Linux下进程占用内存了解
    转自:https://zhuanlan.zhihu.com/p/4703150891.介绍通过以下命令:cat/proc/pid/status即可查看所占用内存情况,C++中通过getpid()函数即可打印进程的pid,类型为pid_t,......
  • RS+BCH级联编译码误码率性能matlab仿真
    1.算法描述        在实际情况中,在光通信信道中出现的错误有单独随机出现的误码,也有突发出现的无码,为了更好的提升光通信的性能,需要使用级联码。       ......
  • Atcoder Regular Contest ARC 153 A B C D 题解
    点我看题A-AABCDDEFE一个beautifulnumber是形如这样的:\(S1S1S3S4S5S5S7S8S7\)。如果选定了\(S1\),后面的数有100000种选法,所以先求出答案的\(S1\)。假设现在我们要求出......