羊车门作业已发布,很快就会有同学提交作业,在此作业基础上,我们发布本网络爬虫作业。
 
本作业共分两部分,第一部分必做,第二部分选作。
 

第一部分:

 
请分析作业页面,爬取已提交作业信息,并生成已提交作业名单,保存为英文逗号分隔的csv文件。文件名为:hwlist.csv 。
 
文件内容范例如下形式:
 
学号,姓名,作业标题,作业提交时间,作业URL
20194010101,张三,羊车门作业,2018-11-13 23:47:36.8,http://www.cnblogs.com/sninius/p/12345678.html
20194010102,李四,羊车门,2018-11-14 9:38:27.03,http://www.cnblogs.com/sninius/p/87654321.html
 
*注1:如制作定期爬去作业爬虫,请注意爬取频次不易太过密集;
*注2:本部分作业用到部分库如下所示:
(1)requests —— 第3方库
(2)json    —— 内置库
 

第二部分:

在生成的 hwlist.csv 文件的同文件夹下,创建一个名为 hwFolder 文件夹,为每一个已提交作业的同学,新建一个以该生学号命名的文件夹,将其作业网页爬去下来,并将该网页文件存以学生学号为名,“.html”为扩展名放在该生学号文件夹中。

 

 

 

import json
import requests
url="https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=2422&_=1543836981912"
try:
    q=requests.get(url)
    q.raise_for_status()
    q.encoding=q.apparent_encoding
except:
    print("产生异常")
datas=json.loads(q.text)["data"]
a=""
for data in datas:
    a += str(data["StudentNo"])+","+data["RealName"]+","+data["DateAdded"].replace("T","")+","+data["Title"]+","+data["Url"]+"\n"
with open("C:\\hwlist.csv","w") as f:
        f.write(a)