1. 程式人生 > 其它 >20192319李歆韻實驗四《Python程式設計》實驗報告

20192319李歆韻實驗四《Python程式設計》實驗報告

課程:《python程式設計》

班級:1923
姓名:李歆韻
學號:20192319
實驗教師:王志強
實驗日期:2022年5月31日
必修/選修:公選課

1 實驗內容

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

2 實驗過程

原始碼:
請求的url地址
url = 'https://qxs.la/177913/'

偽造請求頭, 模擬瀏覽器
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36'
}

請求網頁
rsp = requests.get(url=url, headers=headers)
soup = BeautifulSoup(rsp.text, 'lxml')

開啟檔案準備寫入
file = open('雪鷹領主.txt', 'w', encoding='utf-8')
解析所有子連結
links = soup.select('.chapters .chapter a')
for link in links:
href = 'https://qxs.la' + link.get('href')
title = link.get('title')
print(title)
print(href)

while

 True:

    try:

        # 請求每章的詳情頁

        desc = requests.get(url=href, headers=headers, timeout=5)

        if desc.status_code == 200:

            break

    except Exception as e:

        # print(e)

        pass

d_soup = BeautifulSoup(desc.text, 'lxml')

 

 獲取content標籤

content = d_soup.select_one('#content')

 去除多餘的標籤

[s.extract() for s in content("div")]

 獲取文字內容

content = content.text

 

file.write(title + '\n' + content + '\n')

time.sleep(0.2)

 break

關閉檔案寫入
file.close()
進入網頁


獲取所有章節資訊,找到網頁中的資料


偽造headers,模擬瀏覽器發起請求網頁資料


每個章節連接獲取後,迴圈請求每個章節連線,請求詳情頁資料
發現詳情頁具體在id為content的div下


獲取資料後,寫入到文字文件中

3 實驗過程中遇到的問題及解決過程

問題1:對爬蟲技術不熟悉導致無從下手
問題1解決方案:仔細學習課程所發的資源並自己在網路上檢視相關知識
問題2:請求詳情頁時,出現困難
問題2解決方案:發現詳情頁具體在id為contect的div下

其他(感悟、思考等)

1.經過一個學期的學習,我發現程式設計並不像我原本想象的那樣,像動畫影視作品一樣具象的有趣,它所呈現給我們的,更多是冷冰冰的程式碼及邏輯,但真正熱愛程式設計的人卻能從中找到字裡行間的趣味性,並利用這些冷冰冰的程式碼,去實現各種繽紛絢麗的實際功能。
2.在學習python的過程中,在王老師的指導下,經過一學期的學習,我感觸頗深,也學到了很多的python相關知識。從資料型別、操作符,到分支迴圈結構、列表元組、字串、函式,再到類和物件、爬蟲,我們一步步深入python的學習,也讓我們培養了對程式設計濃厚的興趣。在往後的學習中,我們也不會放棄python的學習。