python 爬虫爬取网络

 

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

第一部分

请分析做业页面,爬取已提交做业信息,并生成已提交做业名单,保存为英文逗号分隔的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”为扩展名放在该生学号文件夹中。

首先使用开发者工具获取所需爬取的url,如图所示html

查看数据类型为json格式,看以前各位大佬的博客叫json数据类型,json

用json库loads转换为dict数据格式取出每个元素,再打开文件写入数据,网络

import requests
import json
try:
    r=requests.get('https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=2420&_=1544072161608')
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    datas=json.loads(r.text)['data']
except:
    print("网络错误")
else:
    crawl=''
    for data in datas:
        crawl+=str(data["StudentNo"])+","+data["RealName"]+","+data["DateAdded"].replace("T"," ")+","+data["Title"]+","+data["Url"]+"\n"
    with open ('hwlist.csv','w') as f:
        f.write(crawl)

以上是源代码,下面是结果app

相关文章
相关标签/搜索