20201116鄭良奧-實驗四python綜合實踐
阿新 • • 發佈:2021-06-30
課程:《Python程式設計》
班級: 2011
姓名: 鄭良奧
學號:20201116
實驗教師:王志強
實驗日期:2021年6月30日
必修/選修: 公選課
一、實驗內容
Python綜合應用:爬蟲、資料處理、視覺化、機器學習、神經網路、遊戲、網路安全等。
本次實驗內容:爬取nba20-21賽季常規賽得分榜前20名,並寫入Excel表格中儲存
二、實驗過程及結果
1.獲取網頁內容
發起請求
r = requests.get(url, timeout=30)
狀態
r.raise_for_status()
設定字串
r.encoding = r.apparent_encoding
獲取文字內容
r.text[:1000]
2.獲取想要的資料
開啟網頁虎撲體育-NBA球員得分資料排行 第1頁 (hupu.com)
摁CTRL+shift+c選擇元素進行檢查,複製元素的slector。
def fillPlayList(plist, html):
建立BeautifulSoup物件
soup = BeautifulSoup(html, "html.parser")
找到表格,拿到資料
for tr in soup.find('tbody').children:
if isinstance(tr, bs4.element.Tag):
獲取td標籤
tds = tr('td')
獲取標籤裡的內容
plist.append([tds[0].string, tds[1].string, tds[2].string, tds[3].string])
3.將資料寫入表格
開啟表格
wb = openpyxl.Workbook()
ws = wb.active
設定行數
r = 1
定義存放資料的列表
p = []
迴圈,把資料存入列表
for i in range(num):
p.append(plist[i])
迴圈寫入表格
for line in p:
for column in range(1, len(line) + 1):
ws.cell(row=r, column=column).value = line[column - 1]
r = r + 1
儲存資料到表格
wb.save('nba得分榜前20.xlsx')
4.定義主方法
pinfo = []
網址
url = 'http://nba.hupu.com/stats/players'
呼叫getHTMLText獲取網頁內容
html = getHTMLText(url)
呼叫fillPlayList獲取需要的資料
fillPlayList(pinfo, html)
儲存資料到表格,前20
savePlayList(pinfo, 21)
3.執行結果
4.將程式碼push到碼雲
失敗了,建不了倉庫了
三、學習心得
在這一個學期的學習中,我感受的了python這門語言獨特的魅力,作為一門高階語言。近年來python在程式設計上的用處越來越廣泛,也有越來越多的人開始學習python。與c語言相比,他的簡潔和便利令人印象深刻,給了程式設計者很大的自由空間與方便,使程式碼得到了充分的簡化。但是與c語言一樣的是嗎,要想學好python這門語言,也必須不停地敲程式碼,熟能生巧。
同時這門課程也鍛鍊的我的自學能力,就像王老師在第一節和最後一節課上反覆說的那樣“這門課學好了是自己努力學的好”,不只是這門課,大學裡任意一門學科都需要同學們一定程度上的自學,這就要求我們充分利用自己的資源,還要合理安排自己的時間與計劃。
最後還是要真誠地感謝老師一學期的精心指導,讓我不僅學會了這一門課的知識,同時也教給了我平時學習的方法。