【1221-每日Python】爬取三节课课堂作业及评语并自动保存至表格。
一、流程示例:
1,代码目的:
由于做作业时并没有想到去观摩一些同学的优秀作业,但是又想保存,使用过一些网页保存工具,体验不佳,并且三节课网页也做了处理,不太好获取到作业内容,所以写了个脚本。
以上脚本,仅做学习分享使用,请勿使用任何商业目的,如有涉及任何法律法规问题请联系我处理。
此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过此处为填充内容可略过。
2,运行示例图:
二、结果示例:
三、运行要求:
1,简述:
Mac或者Windows皆可,Mac最佳,Windows客户端需安装第三方命令行客户端,例如XSheel;可参考文章了解详细内容《Windows上优秀的命令行(Terminal Emulator)工具推荐》。
2,Mac环境配置如下:
安装最新Python3环境,然后安装requests、pandas、DataFrame三个第三方库(此处可略过直接往下滑看代码复制运行。);
3,源代码:
3.1,安装HomeBrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3.2,安装Python3:
brew install python3
3.3,安装requests、pandas、DataFrame库:
pip3 install requests; pip3 install pandas; pip3 install DataFrame
3.4,总结:
以上,可以选择一步步复制上述代码在终端运行,终端icon如下:
同时也可以直接复制下方代码一步到位,中间需要输入密码的地方输入锁屏密码即可,输入过程看不到,所以得确保一次正确(终端会有读条,部分库安装会比较慢需要等待):
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install); brew install python3; pip3 install requests; pip3 install pandas; pip3 install DataFrame
四、爬虫运行代码:
1,代码:
curl https://raw.githubusercontent.com/ShellMonster/build_ipa/master/SanJieKe_Content.py >>~/Downloads/SanJieKe_Get.py&&python3.7 ~/Downloads/SanJieKe_Get.py
2,运行备注备注(必看):
运行过程中需要输入部分内容,以下为解释及获取处:
请登录三节课,然后打开任意作业区(就是平常交作业后,能看到其他同学作业的地方):
2.1,班级id及作业id:
2.2,cookie信息:
cookie主要记录你的登录信息,有登录信息才有权限让爬虫进入你对应的作业区进行数据爬取。
2.2.1步骤一:
2.2.2,步骤二:
2.2.3,步骤三:
进入“NetWork”后,刷新页面,任意方式,刷新当前页面即可。
2.2.4,步骤四:
最后一步,复制你的cookie信息,注意此处是复制“_9755”开头的信息(可能不以这个数字和符号开头,参考图片对比就行),直到在浏览器里把这个“cookie”的值复制完,然后粘贴到终端内(终端会提示你输入此项内容。):
2.2.5,查看数据:
数据默认导入到“downloads”文件夹,csv的,自己查看即可,终端也会输出运行情况,其他情况可文章内留言。
PS:作业内容是带排版格式的,复制作业内容到“135编辑器”或者“i排版”等工具即可查看完整带排版的作业内容。
PS:表格表头顺序:
学员名字,学员岗位,id,作业id,班期id,用户id,点赞数,作业内容,提交时间,最后更新时间,作业分数,是否推荐(1为推优,0则无推优,后面是否优秀同),是否优秀,助教名称,助教评语,批改时间,最后批改时间。
DZNB(破音)
DZNB(破音)
DZNB(破音)
DZNB(破音)
DZNB(破音)
DZNB(破破破音)
DZNB(破音)
道长牛逼……
请输入你从浏览器复制的cookie信息:t354enkugtgu4i6k3og0ui55p3
请输入作业编号:12542182
请输入班级编号:12052169
Traceback (most recent call last):
File “/Users/chenjiangang/Downloads/SanJieKe_Get.py”, line 77, in
countpage = res_json_print[‘data’][‘countpage’] # 获取总计页数
TypeError: list indices must be integers or slices, not str
你好,我照你提供的方法在操作时出现了以上错误,请问是什么原因呢,请指点一下,谢谢你哦~
Cookie信息貌似有误,另外不知道三节课是否做反爬了
已经搞定了,复制:PHPSESSID=t354enkugtgu4i6k3og0ui55p3;
这种形式的,非常感谢
这个目前还能用吗?不太懂技术,但是又很想要这个,求大神
可以用的,需要自己获取cookie