背景:上交学子肯定都用过好大学在线的慕课,可是老师上课的PPT课件只能在网页端预览,并不提供下载,这是非常蛋疼的一件事,毕竟上交午夜就断网啊……
好了话不多说,这回以本人的专业课为例,记录下如何批量爬下一门课程的所有课件。
首先我们分析下解决的思路:模拟登录
分析网页,找到PPT的链接
利用python解析网页,把所有PPT链接保存下来
下载PPT
大概就是这样,模拟登录这里为了省事,我直接在网页端登录好,然后用chrome拿到cookie就能直接访问了。import requestsimport refrom bs4 import BeautifulSoup
headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', 'X-Requested-With': 'XMLHttpRequest'}# 这是我课程的导航页,所有章节都可以在这看到nav_page = 'https://cnmooc.org/portal/session/unitNavigation/10036.mooc'#这是从chrome中拿到的登录后的cookiecookie = 'moocvk=a9628796e8c3450a85791954be220ee6; sos=true; moocsk=f3f8b5550828439c932b0fe033d74c29; JSESSIONID=225C396119183B79BE506D97B