不成熟的爬虫

第一部分:

请分析作业页面,爬取已提交作业信息,并生成已提交作业名单,保存为英文逗号分隔的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)

 

不成熟的爬虫_第1张图片

不成熟的爬虫_第2张图片

就先做到这样吧

不成熟的爬虫_第3张图片

 

你可能感兴趣的:(不成熟的爬虫)