1. 程式人生 > 實用技巧 >Python爬蟲實驗報告之Big_Homework2_Douyu

Python爬蟲實驗報告之Big_Homework2_Douyu

實驗內容:

  爬取鬥魚視訊某一板塊的內容

  採集欄位:房間名、主播名、分類資訊、熱度

流程圖:

原始碼:

 1 import requests
 2 from lxml import etree
 3 from urllib import request
 4 import json
 5 
 6 # 全域性變數(請求頭+檔案io物件)
 7 headers = {
 8     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36 Edg/85.0.564.44
'} 9 file = open('./鬥魚.txt', 'w', encoding='utf-8') 10 11 12 # 採集前端原始碼 13 def index(): 14 for num in range(1, 21): 15 base_url = 'https://www.douyu.com/gapi/rkc/directory/mixList/2_181/{}'.format(num) # 翻頁 16 print('正在寫入', base_url, '中的資料資訊...') 17 response = requests.get(base_url, headers=headers)
18 response.encoding = 'uft-8' # 解碼 19 jsons = response.text 20 # print(type(jsons))#jsons的資料型別是str 21 clean(jsons) # 清洗資料函式 22 23 24 # 清洗資料 25 def clean(jsons): 26 dicts = json.loads(jsons) # 將jsons的資料型別由字元型轉換成字典型 27 # print(dicts) 28 info_list = dicts['
data']['rl'] # 提取主要資訊 29 printt(info_list) 30 31 32 # 列印資料資訊 33 def printt(info_list): 34 for i in info_list: 35 room_number = i['rn'] 36 # print(room_number) 37 homeowner = i['nn'] 38 # print(homeowner) 39 heat = i['ol'] 40 # print(heat) 41 C2name = i['c2name'] 42 # 整合資料資訊 43 full_info = C2name + '房間號:' + room_number + '\t' + '房主:' + homeowner + '\t' + '熱度:' + str(heat) 44 # 寫入檔案 45 file.write(full_info + '\n') 46 47 48 if __name__ == '__main__': 49 index() 50 file.close()
View Code

實驗過程中的部分截圖:

實驗心得:

腦子裡回憶著今天上午所學的內容,指下卻一刻都沒停過,找可供翻頁的網址,解碼,轉換,清洗提取資訊,整合成自己所樂意看到的資訊樣式,看到最後run出來的鬥魚.txt文件,真的是滿滿的成就感。雖然連著搞了2個小時左右叭,卻毫無疲憊之意,開心程式設計莫過於此!