免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

下载免费电子书的网站

本帖最后由 hbghlyj 于 2021-6-5 02:09 编辑

国际
zlibrary这里甚至可以找到中文书.限制是10/day
www.twirpx.com这里是"几何"标签下的电子书,有856个项目
genlib一个综合性搜索引擎
the-eye
perlego
worldcat
goodreads
abebooks
国内
爱图书限制是2/day
学兔兔限制是2/day
小不点搜索
万千合集站
道客巴巴
free-online-books.html

以上都弱爆了
http://zh.chaoxing.com/17/
帐号:beihai
密码:123456

TOP

TOP

用MMA来下载超星汇雅电子书的方法
本帖隐藏的内容需要积分高于 9000 才可浏览

TOP

[i=s] 本帖最后由 hbghlyj 于 2021-6-6 16:44 编辑 [/i]

完整代码如下


ClearAll[j]; list =
StringJoin[ToString /@ #] & /@
  Table[PadLeft[IntegerDigits[j], 6], {j, 1000}];
in1 = InputString["要保存在哪里?输入文件夹路径"];
If[! in1 === "",
  Quiet[file[j_] = FileNameJoin[{in1, list[[j]] <> ".png"}]]];
in2 = Input["输入要下载的第一页页码"];
If[! in2 === Null, i = in2];
in3 = Input["输入要下载的最后一页页码"]; If[! in3 === Null, end = in3];
in4 = InputString["输入任一页的图片url,两端不要加引号,程序会自动去除url在最后一个/之后的内容"];
If[! in4 === "", url = StringDrop[in4, -13]];
For[i = i, i != end + 1, i++,
URLDownload[url <> list[[i]] <> "?zoom=2", file[i]];
If[MemberQ[{12452, 17663}, FileByteCount[file[i]]],
  EmitSound[Sound[SoundNote[]]];
  u = ChoiceDialog[
    "我在下载第" <> ToString[i] <>
     "页时出错了.请刷新网页重新复制图片链接!如果还是不行的话,请查看网页上的对应页,因为有可能" <> ToString[i] <>
      "页本来就不在数据库中.", {"链接失效了" ->
      ToString[url = StringDrop[Input["填写新的url"], -13];] <> "i--",
     "跳过这一页" -> ToString[Print["已跳过第" <> ToString[i] <> "页"]]}];
  ToExpression[u]];
If[! (FileFormat[file[i]] === "PNG"), EmitSound[Sound[SoundNote[]]];
  SystemOpen[url <> list[[i]] <> "?zoom=2"];
  u = ChoiceDialog[
    "我在下载第" <> ToString[i] <>
     "页时被判定为爬虫了.请在自动打开的网页上填写验证码!填写完成后关闭该网页即可.如果自动打开的网页上没有验证码的话,\
在下方按退出内核.然后你要重新运行我,所有参数都需要重新输入!", {"已填写验证码" -> "i--",
     "退出内核" -> "Quit[]"}]; ToExpression[u]]]; EmitSound[
Sound[{SoundNote["C4"], SoundNote["G"], SoundNote["C"]}]];


更新说明
①在被判定为爬虫或者过了很长时间,链接失效后终止程序,并播放提示音.如果被判定为爬虫,网页会显示操作异常,这时不要慌,在自动打开的网页(系统默认浏览器)上人工输入验证码即可解锁(这是因为我不知道如何用机器破验证码,$\color{brown}{这个有待改进}$).这个程序设计的是速战速决型,所以没有设计延时,一直是全速下载的,缺点是不时地需要人工输入一下验证码...出错后按窗口提示操作即可.
②使用时不用改程序代码中的参数,运行时会弹出提示框,按提示输入要保存到的路径和url和起止页码即可.url是在"网页阅读"界面的任一页(可以是正文页/目录页/书名页/封底页....)上右击"复制图片地址"得到的,示例(已失效链接):
http://ffhg1aaaab6c51d04b47b462edc80b707083hpk6pbn0nvv5k6ucw.fgzi.res.gxlib.org.cn/n/249c1a6140c42be3493e7aa5fb19ef27MC299040079872/img1/3E7FB4E1D03807AA472CFBE1BD91BC2F5EEEF8217CD4B3DD38DAA4EED70FFDB146585510A52B5B3724672394D2D5055CD78FEDDC73021962D870518179CE4F3A98912990FF32C6171260606A0CBF0E4EC2F270E4A468E8347B1A080173E36110B863C87E822B3D689107D74A5C16D96231DA/nf1/qw/10100955/37C64744517C40C0868CC94F3E024CC6/$\color{red}{\text{000002?zoom=0}}$
程序会自动把红色部分去掉,所以请不要作任何改动,也不要加引号
③第一次运行时必须填写所有参数,否则会报错.
在已经运行过一次或几次的情况下,如果某个参数和之前一样,则不需要输入,自动按上一次的参数来处理.例如:一本书,我要下载第15-16和89-90页,则在第二次运行时,"保存路径"和"url"都可以不填,只填新的起止页码.再举一例,我下载从100页到200页,正常地下载完了,然后我还要继续下载到300页,那么我需要重新运行程序,只需填写末尾页300,其它的参数都按确定.
④目前只能下载正文.所填的页码应均为正文页码,也就是没有第0页,最小是从第1页开始.如果要下载目录页或封皮页只能手动一个个另存为图片了($\color{brown}{这个有待改进}$...)
⑤默认下载的都是最高清晰度,但这样文件比较大,如果要修改的话,把URLDownload里面的zoom=2改为zoom=1或zoom=0即可.清晰度是递减的.

TOP

运行了30多次,把错误都修复了

TOP

返回列表 回复 发帖