1. 程式人生 > >python爬蟲(爬取羊車門作業的作業)

python爬蟲(爬取羊車門作業的作業)

程式碼如下

 
import requests
import json
import time
import os
from threading import Timer
def getHTML(url):
    try:
        r=requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding=r.apparent_encoding
        datas=json.loads(r.text)['data']
    except:
        print('
連線失敗') else: result="" for data in datas: result+=data['StudentNo']+','+data['RealName']+','+data['DateAdded']+','+data['Title']+','+data['Url']+'\n' f=open('F:\羊車門爬蟲作業\hwlist.csv','w') f.write(result) f.close() os.mkdir('F:\羊車門爬蟲作業\hwFolder
') os.chdir('F:\羊車門爬蟲作業\hwFolder') for data in datas: os.mkdir(data['StudentNo']) os.chdir(data['StudentNo']) try: web=requests.get(data['Url'],timeout=30) web.raise_for_status() web.encoding=web.apparent_encoding
except: print('連線失敗') else: f=open(data['StudentNo']+'.html','wb') f.write(web.content) f.close() os.chdir(os.path.pardir) url='https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=2420&_=1543216235911'

第一部分:

請分析作業頁面,爬取已提交作業資訊,並生成已提交作業名單,儲存為英文逗號分隔的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”為副檔名放在該生學號資料夾中。