課程:《Python程序設計》
班級: 1941
姓名: 向海飛
學號:20194123
實驗教師:王志強
實驗日期:2020年6月13日
必修/選修: 公選課html
Python綜合應用:爬蟲、數據處理、可視化、機器學習、神經網絡、遊戲、網絡安全等。
選擇:爬蟲python
須要用到 bs4 、正則表達式、requests 的知識
找到網址http://zuihaodaxue.cn/ARWU2015.html
正則表達式
如圖知數據塊是 tbody,分析得html 中一行對應一個tr,世界排名、國家排名、總分能夠直接經過 tr[‘td’] 得到,而學校須要經過 tr[‘td’].a.string 得到,國家/地區須要經過 tr[‘td’].a[‘title’] 得到
過程以下:
導入相關庫:安全
import requests
from bs4 import BeautifulSoup
import bs4網絡
獲取網頁數據app
ef getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ""機器學習
解析網絡數據函數
ef fillUnivList(ulist, html):
soup = BeautifulSoup(html, "html.parser")
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag):
tds = tr('td')
ulist.append([ tds[0].string, tds[1].a.string, tds[2].a['title'], tds[3].string, tds[4].string ])學習
顯示數據ui
def printUnivList(ulist, num):
tplt = "{0:10}\t{1:44}\t{2:16}\t{3:16}\t{4:^16}"
print(tplt.format("世界排名", "學校名稱", "國家/地區", "國家排名", "總分"), chr(12288))
for i in range(num):
u = ulist[i]
print(tplt.format(u[0], u[1], u[2], u[3], u[4]), chr(12288))
def main():
uinfo = []
url = 'http://zuihaodaxue.cn/ARWU2015.html'
html = getHTMLText(url)
fillUnivList(uinfo, html)
printUnivList(uinfo, 80) # 20 univs
if name == 'main':
main()
結果以下圖:
學習python已經有一學期了,我在本學期中學會了python的語言基礎,流程控制語句,其中for和while循環是最讓我花時間得,,後來得序列,函數都還好,但到了面向對象程序設計後就有些跟不上了。說實話對我來講有些困難,我本來覺得我就算一時間不會的話也能夠多花時間練習,但後來逐漸發現本身一天的課和做業下來就沒多長時間了,因此我學習python主要是在週三上課的時候,有時週末也會找雲班課學習一下。雖然有不少知識點都沒有很搞懂,但總的來講,這學期收穫仍是不少的,由於之前選的文科,總以爲本身也應該嘗試新的領域,因此學習python也算是得償所願吧。