1. 程式人生 > 其它 >20212112劉錦淑《Python程式設計》綜合實踐——實驗四

20212112劉錦淑《Python程式設計》綜合實踐——實驗四

課程:《Python程式設計》

班級: 2121

姓名: 劉錦淑

學號:20212112

實驗教師:王志強

實驗日期:2022年5月30日

必修/選修: 公選課

 

(一)實驗要求

Python綜合應用:爬蟲、資料處理、視覺化、機器學習、神經網路、遊戲、網路安全等。

課代表和各小組負責人收集作業(原始碼、視訊、綜合實踐報告)

注:在華為ECS伺服器(OpenOuler系統)和物理機(Windows/Linux系統)上使用VIM、PDB、IDLE、Pycharm等工具程式設計實現。

批閱:注意本次實驗不算做實驗總分,前三個實驗每個實驗10分,累計30分。本次實踐算入綜合實踐,打分為25分。
評分標準:
(1)程式能執行,功能豐富。(需求提交原始碼,並建議錄製程式執行的視訊)10分
(2)綜合實踐報告,要體現實驗分析、設計、實現過程、結果等資訊,格式規範,邏輯清晰,結構合理。10分。
(3)在實踐報告中,需要對全課進行總結,並寫課程感想體會、意見和建議等。5分

(4)如果沒有使用華為雲服務(ECS或者MindSpore均可),本次實踐扣10分。

注意:每個人的實驗不能重複,課代表先統計大家做的內容並彙總,有重複的需要自行協商。

二)實驗內容

爬蟲爬取虎牙直播平臺相關資料

(三)實驗過程及結果

一、利用Python的requests庫和BeautifulSoup庫編寫程式碼對網頁資料進行爬取

1.引入所需要的庫

  2.爬取直播平臺的相關資料,包括直播間熱度、網址、直播使用者名稱、直播標題

二、將所得資料寫成csv檔案

三、Pycharm成果展示,同時生成csv檔案

 四、在華為ESC伺服器上執行

1.登入winscp並將程式碼傳上去

 2.在putty上執行

附:實驗原始碼

import requests from bs4 import  BeautifulSoup url = 'https://www.huya.com/l' headers = {         "user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" } r = requests.get(url,headers = headers) r.raise_for_status() r.encoding = 'utf-8' html = BeautifulSoup(r.text,'html.parser') a = html.find_all('a',class_ ='recomend-item j_sidebar-recomend-item') urls1 = [] urls2 = [] urls3 = [] urls4 = [] urls1.append('熱度(萬)') urls2.append('網址') urls3.append('直播間') urls4.append('直播標題') urls=[] for i in a:     href = i['href']     title = i['title']     #print(href,title)     urls.append([href,title]) for url in urls:     r = requests.get(url[0],headers = headers)     r.raise_for_status()     r.encoding = 'utf-8'     html = BeautifulSoup(r.text,'html.parser')     a = html.find_all('li',class_ = 'game-live-item')     print(url[1])     for i in a:         num = i.select('i',class_ = 'js-num')[3].text         num = num.replace('萬','')                 title = i.select('img')[0]['alt']         href = i.select('a')[1]['href']         title1 = i.select('a')[1]['title']
        urls1.append(num)         urls2.append([href])         urls3.append([title])         urls4.append([title1])
    urls1_set = set(urls1) import csv with open('example.csv', 'w',encoding = 'utf-8',newline='') as f:     writer = csv.writer(f)         for i in range(len(urls1_set)):         writer.writerow([urls1[i],urls2[i],urls3[i],urls4[i]]) (四)實驗過程中遇到的問題

問題1無法下載requests庫

解決辦法:上網查詢後發現是自己pip版本太低,進行了更新

問題2在putty上執行時發現包沒有導過去,無法執行

解決問題:在同學的幫助下解決

(五)結課感想與建議

1.課堂總結:輸入輸出,基本資料型別:整數型別,四種進製表示形式、浮點型別,字串型別正向遞增序號、反向遞減序號,索引和切片[ : ],字串的操作符,字串處理函式,字串處理”方法”字串型別格式化,python的分支語句(分支結構)if elif else 和迴圈語句(迴圈結構)while for continue break,集合與字典,集合間的運算,函式,def return 程式碼複用和封裝,面向物件程式設計 三要素:封裝、繼承、多型, 物件、類

2.結課感想:其實當初選修Python是因為聽說Python比較簡單,操作比較方便,而自己又是一個變成小白,之前從未接觸過程式設計程式碼。然後我就想著既然Python比較簡單的話,對於我這樣的小白來說可能比較友善,更好掌握。本著多掌握一門技術的心態,我選擇了Python。但等我開始學的時候,才發現原來這門課並沒有我想象中的那麼簡單,更糟糕的是,本學期我還有必修課C語言,在剛開始學的時候,偶爾還會把兩者弄混。但通過王老師的傾囊相授和自己不斷地學習,我也開始漸漸瞭解Python。我還記得當時在老師的帶領下第一次敲出一個猜數的小遊戲時,自己驚喜的心情。(當時拍的照片我還留著)

 雖然後來隨著教學的逐漸深入,自己有點跟不上,但通過同學們的幫助我也能夠解決大部分的問題。

其實起初自己對程式設計並不感興趣,選Python也並不是因為喜歡,而是覺得大家都選了,自己不選感覺比別人少學了東西。但是出乎我意料的是王老師上課非常風趣幽默,自己學起來也不排斥,或者說覺得厭煩。雖然很多作業對我來說都有難度,但還是會認認真真的去完成。

總的來說,Python這門選修課帶給我的驚喜很多,成長也很多,自己以後空閒時間也會繼續去學習瞭解一些有關的知識。

3.課堂建議:王老師講課最吸引我的一點就是幽默風趣,教學不死板,總是能夠吸引我的注意力。但可能是自己太垃圾了(捂臉),個人感覺老師上課講課的速度稍微有一點點快,自己總是跟不上老師敲程式碼。對於我這樣的小白來說,學起來比較吃力(哭)。所以老師講課速度可以稍稍慢一點,或者在課後把上課敲的程式碼和PPT發到班群裡,有需要的同學可以再學習學習。