美文网首页
Springer电子书下载

Springer电子书下载

作者: 波波在敲代码 | 来源:发表于2020-05-15 14:45 被阅读0次

在图书馆下文献的时候看到公告说斯普林格在疫情期间对旗下部分图书提供免费下载。学校图书馆说的有效期是2020年7月1日之前。下载地址为:https://link.springer.com/search?query=&facet-content-type=%22Book%22&showAll=false
足足有一万七千多本书可以免费下载,同时还有23万图书提供在线阅读。随便点了几本发现同时提供pdf和epub格式的下载。于是写了一个爬虫,下了一些Python、R、生物信息学以及生物类的图书。代码如下:

# 引入库
import requests
from bs4 import BeautifulSoup

# 用于手动生成标签页面,vTag代表检索词,i代表页码
# 示例地址:https://link.springer.com/search/page/1?facet-content-type=%22Book%22&showAll=false&query=Python
def fTag(vTag, vNum):
    vUrls = [];
    for i in range(1, vNum):
        vUrls.append("https://link.springer.com/search/page/" + str(i) + "?facet-content-type=%22Book%22&showAll=false&query=" + vTag);        
    return(vUrls);

# 用于收集每本书的网址
def fPageUrls(vUrl):
    r = requests.get(vUrl);
    vHtml = r.text;
    vSoup = BeautifulSoup(vHtml, "lxml");
    vPages = vSoup.select("h2");
    vPageUrls = [];
    for vPage in vPages:
        try:
            vPageUrls.append("https://link.springer.com" + vPage.find("a")["href"]);        
        except:
            continue;
    return(vPageUrls);

# 分别下载pdf书和epub书,目前有一个bug,同名的书后面的会覆盖前面的,虽然这个改起来不难,但是发懒没改
def fDownLoad(vPageUrls):
    for PageUrl in vPageUrls:
        r = requests.get(PageUrl);
        vHtml = r.text;    
        vSoup = BeautifulSoup(vHtml, "lxml");
        vName = vSoup.find("h1").text;
        print(vName);
        vUrls = vSoup.select("div.sticky-banner__container");
        for vUrl in vUrls:
            try:
                vDownload = vUrl.findAll("a");
                j = 0;
                for i in vDownload:
                    vBookUrl = "https://link.springer.com" + i.get("href");
                    r = requests.get(vBookUrl);
                    if j == 0:
                        with open(vName + ".pdf", "wb") as f:
                            f.write(r.content);
                            j = 1;
                    elif j == 1:
                        # 如果只需要一种格式的书,可以将写文件的部分注释掉
                        with open(vName + ".epub", "wb") as f:
                            f.write(r.content);
                            j = 0;
            except:
                continue;

# 程序入口(参数为检索词和下载前多少页)
def main(vTag, vNum):
    vUrls = fTag(vTag, vNum);    
    for vUrl in vUrls:
        vPageUrls = fPageUrls(vUrl);
        fDownLoad(vPageUrls);

# 运行实例
main("with R", 2);
# main("Python", 3);

已经下了很多电子书了,老实说,下这么多,怕是没时间看呢,先屯起来。

相关文章

  • Springer电子书下载

    在图书馆下文献的时候看到公告说斯普林格在疫情期间对旗下部分图书提供免费下载。学校图书馆说的有效期是2020年7月1...

  • SmartBlock 2018区块链论文合集

    智能区块链国际会议 SmartBlock 2018论文集下载地址: https://link.springer.c...

  • 世界第一科技出版公司 Springer 开放 408 本正版电子

    前几天,世界著名的科技期刊、图书出版公司施普林格(Springer)宣布:免费向公众开放 400 多本正版的电子书...

  • 2020-04-26 Free Springer Books d

    405本书,大家可以薅一把Springer 的羊毛?链接:https://link.springer.com/se...

  • 书籍|文档

    微盘 各种资料. 爱问 各种资料. 英文电子书下载网站合集 电子书下载 创世纪 国外英文网站 PPT模版下载.国外...

  • 微信小鹅通电子书下载教程(超详细)

    小鹅通电子书下载教程,小鹅通课程下载教程,小鹅通电子书下载 1.打开网址: 风之语课程下载网--专业小鹅通课程下载...

  • 电子书免费下载资源

    发现一个电子书免费下载的网址,这是一个全球电子书下载地图,提供网盘免费下载。内容是55个下载地址的汇总,其中还包含...

  • 如何制作电子书及目录

    笔者喜欢用kindle看电子书,一般下载的电子书格式是awz3,mobi,word等。 一日萌发自己编电子书下载到...

  • 下载电子书

    现在已经维护的书单有以下: 还有永乐大典: 关注微信公众号:秦川号(ID:qinchuan_hao),后台发送“书...

  • 电子书下载

    一、owllook 二、鸠摩搜书 三、Hotbaidu 四、西林街搜索 五、libgens

网友评论

      本文标题:Springer电子书下载

      本文链接:https://www.haomeiwen.com/subject/guycohtx.html