我用Python爬取了难下载的电子教材(内附代码)
第一次在CSDN上面分享经历,有点激动。本大二狗最近这段时间去不了学校又想看教材,不巧学习通上面的部分内容老师设置了不可下载啊。好在最近学习了一点Python爬虫的知识,欢迎需要下载的同学看过来!还请各位大佬多多指教哦!
声明 下载仅供学习,不应到处转发电子版本侵害教材版权!
学习系统简介
学习通
以如下这门课为例,教师设置了不可下载:
Windows系统按F12检查网页,再点击右上角的定位(或Ctrl+Shift+C),去网页中选择你想下载的内容。观察右侧Elements栏可知该教案的链接,并得知其为png图片格式。
将左栏教材逐渐翻页,依次观察链接,可见文件名称的更改有以下规律:
https://s3.ananas.chaoxing.com/doc/90/82/9f/a0166ab6ad54432fe759395aaf79af62/thumb/2.png
仅图片名称逐张加一。
对此可以写一个循环,拼接链接并下载图片。
代码实现
注意,本段代码需要使用requests库。
import requests
headers={'user-agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
# 设置请求头
for i in range(1,23): # 根据实际情况设置页数
# 发出请求,并把返回的结果放在变量res中
res = requests.get('https://s3.ananas.chaoxing.com/doc/90/82/9f/a0166ab6ad54432fe759395aaf79af62/thumb/'+str(i)+'.png')
# 把Reponse对象的内容以二进制数据的形式返回
pic=res.content
# 这里的文件没加路径,它会被保存在程序运行的当前目录下。
# 图片内容需要以二进制wb读写。你在学习open()函数时接触过它。
photo = open(str(i)+'.png','wb')
# 获取pic的二进制内容
photo.write(pic)
# 关闭文件
photo.close()
在当前路径中就能看到下载好的图片啦。
结语
真的不太会编程,只是感觉有必要学习一下,终于在 风变编程 的帮助下学会了一点一直很渴望学的实用技能。忍不住要夸夸它!
这个代码也是很简单,以后也要继续加油!