不成熟的爬虫
第一部分:
请分析作业页面,爬取已提交作业信息,并生成已提交作业名单,保存为英文逗号分隔的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
第二部分:
在生成的 hwlist.csv 文件的同文件夹下,创建一个名为 hwFolder 文件夹,为每一个已提交作业的同学,新建一个以该生学号命名的文件夹,将其作业网页爬去下来,并将该网页文件存以学生学号为名,“.html”为扩展名放在该生学号文件夹中。
(又是忙炸天的一周,爬虫还是没有很成熟。)
import sys import urllib.request import pandas as pd ans=[] ad=[] try: r=requests.get('https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=2420&_=1543591744218',timeout=3) r.raise_for_status() r.encoding=r.apparent_encoding except: print('error!!') data=json.loads(r.text) for i in data['data']: if i['StudentNo']==None: stuid=' ' else: stuid=str(i['StudentNo']) dat=i['DateAdded'].replace('T',' ') ad=(stuid,i['RealName'],i['Title'],str(dat),i['Url']) ans.append(ad) df=pd.DataFrame(ans) df.columns=['学号','姓名','作业标题','作业提交时间','作业URL'] df.to_csv('hwlist.csv',encoding='gbk',index=False) #=============================================================== def addd(tar,tem,h): t=tar+os.path.sep+tem if not os.path.exists(t): os.makedirs(t) os.chdir(t) with open(tem+'.html','wb') as f: f.write(h) os.chdir(tar) curpa=os.getcwd() tempa='hwFolder' tar=curpa+os.path.sep+tempa if not os.path.exists(tar): os.makedirs(tar) else: print('路径已经存在!') for i in data['data']: n=str(i['StudentNo']) u1=urllib.request.Request(i['Url']) u2=urllib.request.urlopen(u1) u=u2.read() addd(tar,n,u)


就先做到这样吧


浙公网安备 33010602011771号