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

相關文章
相關標籤/搜索