直接使用上節課代碼
把文件保存到以.html結尾的文件中python
import requests
url = 'https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=3103&_=1557235742010'
try:
r = requests.get(url,timeout=20)
r.raise_for_status()
r.encoding = r.apparent_encoding
except:
print('網絡異常或頁面未找到,請重試')
f=open('homework.html','w')
import json
觸類旁通
爲什麼想到引用json庫?
1.首先 具備基本的背景知識,知道數據類型爲json
2.結合 python 語言的特色 第三方庫衆多
3.在搜索引擎搜索 python json相關信息json
l=json.loads(r.text)
使用json庫中loads函數,將r.text字符串解析成dict字典格式,存儲於l中網絡
l爲字典型
遍歷l的字典中的鍵值對
l 存在三種鍵值對,data,recordsTotal,recordsFiltered
從英文翻譯中咱們就能知道,數據在l[「data」]中app
發現咱們每一個l["data"]裏面存儲的是列表。svg
經過遍歷輸出列表裏第一個字典元素,輸出了全部key函數
根據英語翻譯咱們很容易就找到了數據內部的
連接 ,姓名,學號和上交時間分別爲
i['Url'],i['RealName'],i['StudentNo'],i['DateAdded']學習
HTML 以'<html>'</html>'內部存放頭<head>和<\head> 和身體<body><\body>搜索引擎
咱們把數據存儲在body裏面就能夠了url
超連接使用
<a href=\"{網頁連接}\"target=\"_blank\" >鏈接 </a>
存儲思路
使用字符串headers存儲
header=''' <html> <head> <title>爬蟲做業</title></head> <body> '''
字符串footer存儲
footer=''' </body> </html> '''
數據內容存儲到body內
body=body+("<p><a href=\"{}\"target=\"_blank\" >鏈接 </a>姓名 {}學號{} 時間{}</p>".format(i['Url'],i['RealName'],i['StudentNo'],i['DateAdded']))
最後將字符串header+body+footer存儲到.html文件內
import requests
import json
url = 'https://edu.cnblogs.com/Homework/GetAnswers?homeworkId=3103&_=1557235742010'
try:
r = requests.get(url,timeout=20)
r.raise_for_status()
r.encoding = r.apparent_encoding
except:
print('網絡異常或頁面未找到,請重試')
f=open('homework.html','w')
l=json.loads(r.text)
header=''' <html> <head> <title>爬蟲做業</title></head> <body> '''
footer=''' </body> </html> '''
body=''
for i in l["data"]:
body=body+("<p><a href=\"{}\"target=\"_blank\" >鏈接 </a>姓名 {}學號{} 時間{}</p>".format(i['Url'],i['RealName'],i['StudentNo'],i['DateAdded']))
print ("<p>鏈接 {}姓名 {}學號{} 時間{}</p>".format(i['Url'],i['RealName'],i['StudentNo'],i['DateAdded']))
s=header+body+footer
f.write(s)
f.close()