美文网首页
人教版小学课本下册爬虫-Python

人教版小学课本下册爬虫-Python

作者: 波波在敲代码 | 来源:发表于2020-04-03 12:01 被阅读0次

各大出版社为了应对疫情,相应教育部号召,将课本pdf电子版教材在线共享了。人教版的也放出了pdf版,可惜都只有下册,清晰度也一般。写了一个小爬虫,将小学的课本全部爬取了,初中等的都类似。
基本思路是通过正则提取所有的课本名(106个),提取所有pdf网址(106个),然后爬取pdf文件网址,并用课本名命名:

# 引入库
import requests
import re
# 爬取主页,该页面包含所有书的下载地址
r = requests.get("https://bp.pep.com.cn/jc/ywjygjkcjc/")
r.encoding = "utf-8"
vHtml = r.text
# 提取所有书名
vName = []
vName = re.findall('h6\>\<a href[\d\D]*?title=\"([\d\D]*?)\"', vHtml, re.S)
print(len(vName))
# 提取所有书的下载地址
vUrl = []
vUrl = re.findall('\<a href=\"\.([\d\D]*?\.pdf)\"', vHtml, re.S)
vUrl[0] = "/xdjc/202001/P020200219781109508538.pdf" # 第一个地址不正常,手动修改
# 补全下载地址
vUrls = []
for i in vUrl:
    vUrls.append("https://bp.pep.com.cn/jc/ywjygjkcjc" + i)
print(vUrls)
# 下载所有课本
for i in range(0, 106):
    print(i)
    print(vName[i])
    print(vUrls[i])
    vFileName = vName[i].replace("一", str(1)).replace("二", str(2)).replace("三", str(3)).replace("四", str(4)).replace("五", str(5)).replace("六", str(6)) + ".pdf"
    r = requests.get(vUrls[i])
    with open(vFileName, "wb") as f:
        f.write(r.content)

相关文章

网友评论

      本文标题:人教版小学课本下册爬虫-Python

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