首页 > 其他 > 详细

网络爬虫

时间:2018-12-03 20:53:53      阅读:158      评论:0      收藏:0      [点我收藏+]

第一部分:

 请分析作业页面,爬取已提交作业信息,并生成已提交作业名单,保存为英文逗号分隔的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    —— 内置库
源代码如下:
import requests
import json

def getHTMLText(url):
    try:
       r =requests.get(url,timeout=30)
       r.raise_for_status()
       r.encoding= ‘utf-8‘
       return json.loads(r.text)
    except:
       print("错误")
url="https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=2420&_=1543742054481"
getHTMLText(url)
       
csv=‘‘

for item in json_data[‘data‘]:
    csv +=str(item[‘StudentNo‘])+‘\t‘+‘,‘+item[‘RealName‘]+‘,‘+item[‘Title‘]+‘,‘+item[‘DateAdded‘].replace(‘T‘,‘ ‘)+‘\t‘+‘,‘+item[‘Url‘]+‘\n‘
with open(‘hwlist.csv‘,‘w‘) as f:
    f.write(result)

 

生成的文件内容如下:

技术分享图片

 

第二部分:

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

folder = os.path.exists("hwFolder")
if not folder:
    os.mkdir("hwFolder")
else:
           

    os.chdir("hwFolder")
    
    for item in json_data[‘data‘]:
        os.mkdir(str(item[‘StudentNo‘])) 
        os.chdir(str(item[‘StudentNo‘]))
        try:
                rr=requests.get(item[‘Url‘],timeout=30)
                rr.raise_for_status()
                rr.encoding= ‘utf-8‘
                
        except:
            print("错误")
        with open("str(item[‘StudentNo‘])"+".html","w+b") as fp:
            fp.write(rr.content)
        os.chdir(os.path.pardir)
        




部分结果如下:
技术分享图片
 
 
参考的内容来自:

https://www.cnblogs.com/lauhp/p/7999662.html

https://www.cnblogs.com/sangern/p/7766394.html

以及各位大佬。。。

网络爬虫

原文:https://www.cnblogs.com/lixueyinggg/p/10060723.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!