1. 程式人生 > 其它 >20211112周子凱《Python程式設計》實驗四報告

20211112周子凱《Python程式設計》實驗四報告

課程:        《Python程式設計》
班級:        2111
姓名:        周子凱
學號:        20211112
實驗教師:  王志強
實驗日期:  2022年5月30日
必修/選修: 公選課

1.實驗內容:

爬取盜版網站筆趣閣上的凡人修仙傳小說。

2.實驗要求:

Python綜合應用:爬蟲、資料處理、視覺化、機器學習、神經網路、遊戲、網路安全等。
課代表和各小組負責人收集作業(原始碼、視訊、綜合實踐報告)

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

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

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

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

3.實驗過程及結果

1.首先是引入所需要的庫(requests和parsel)

 2.爬取想要的小說的目錄,內容

 3.Pycharm上執行成果展示

 4.在ESC上進行執行

 下面是我的程式碼(已上傳至碼雲)

# -*- coding: UTF-8 -*- import requests import parsel url = "https://www.777zw.net/1/1429/" response = requests.get(url)
responses = response.text.encode('iso-8859-1').decode('gbk') print(responses) selector = parsel.Selector(responses) novel_name = selector.css('#info h1::text').get() #小說名 href = selector.css('#list dd a::attr(href)').getall() #小說章節 for link in href: link_url = 'https://www.777zw.net/1/1429/' + link
response_1 = requests.get(link_url) responses_1 = response_1.text.encode('iso-8859-1').decode('gbk') selecter_1 = parsel.Selector(responses_1) title_name = selecter_1.css('.bookname h1::text').get() #小說章節 content_list = selecter_1.css('#content::text').getall() #小說內容 content = '\n'.join(content_list) break # 儲存 with open(novel_name + '.txt',mode = 'a',encoding = 'utf-8') as f: f.write(title_name) f.write('\n') f.write(content) f.write('\n') # print(title_name) print(novel_name) print(content_list) 碼雲上的連結如下: 5.19.py · 周子凱/I am unstoppable - 碼雲 - 開源中國 (gitee.com)  

4.實驗中遇到的問題和解決辦法

問題1.無法下載需要的庫,主要就是pip無法使用

問題1解決辦法:在詢問了度娘之後發現是自己的pip的版本太低了,在更新之後就可以去解決問題3了(無奈.jpg)

 問題2:檔案無法在putty上執行

問題2解決辦法:在檔案頭部新增# -*- coding: UTF-8 -*-

問題3:雖然更新了pip,但是還是沒有完全解決問題,仍然下載不了庫

問題3解決辦法:在查詢過後說是此時pip指向的是python3,需要建立一個軟連結使pip指向python3

全課總結(感悟、思考等)

本學期我們首先初識了python,瞭解了python的發展歷程、未來前景和優勢 。接著在學習了輸入輸出後,我們學習了基本資料型別:整數型別,四種進製表示形式、浮點型別,字串型別,單引號,雙引號,都只能表示一行字串,三單引號,形成的是多行字串,但也可以當多行註釋來使用。正向遞增序號、反向遞減序號,索引和切片[ : ],字串的操作符,字串處理函式,字串處理”方法”字串型別格式化等等。接著我們學習了python的分支語句(分支結構)if elif else 和迴圈語句(迴圈結構)while for continue break,然後我們又學習了集合與字典,集合間的運算。之後我們學習了函式,def return 初步體會了程式碼複用和封裝的感覺。之後我們介紹了面向物件程式設計 三要素:封裝、繼承、多型 介紹了物件、類等知識。

有一說一,最開始的時候,我覺得選一門python並不會給自己增加多少壓力,而且還能和C語言相互借鑑,就倆字——easy!直到真正接觸之後,我才發現這是一件相當不容易的事,不僅在最開始的時候會將C語言的語句和Python課上學的東西搞混,還可能會因為在同一天內接收到大量從未接觸過的知識而使大腦接近於宕機。但是在自己真正開始做這個實驗的時候,才會發現敲程式碼的痛苦過程,都是為了最後程式碼成功執行做的鋪墊。

最後再多說一句,真的非常感謝風趣幽默的王老師,如果換做其他老師,我可能已經在Python課上睡得不省人事了(笑死.jpg)。除此之外也非常感謝王老師在Python課上為我的問題做出的解答,順帶提個小意見,因為在課上我除了聽王老師開玩笑似的講課之外,就是在拼盡全力地敲程式碼跟上老師的節奏,就對於我個人而言,我覺得節奏實在是太快了,我基本上很難跟上,如果能放慢點就更完美了(手動狗頭.jpg)。

最後的最後,還是用一句程式碼來對我一學期的學習進行總結吧。

print("人生苦短,我用Python!")