您好,登錄后才能下訂單哦!
相信大家都非常喜歡聽音樂的吧,每一首歌背后都有一個故事,有愛情,有離別,有仇恨,有不舍等等,聽著自己喜歡總會唏噓,我不僅喜歡聽歌,還喜歡看歌曲下面的評論,很多人都闡述了自己對歌曲的看法和理解,除了一些,你懂的..、
廢話不多說了。上代碼吧(看完吧,代碼直接可以用)
首先導入需求庫
import jsonimport timeimport requests
設置headers信息,模擬成瀏覽器去訪問網站,跳過反爬蟲機制
headers = { 'Host': 'music.163.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
創建函數,獲取評論信息
def get_comments(page): """ 獲取評論信息 """ url = 'http://music.163.com/api/v1/resource/comments/R_SO_4_1313354324?limit=20&offset=' + str(page) response = requests.get(url=url, headers=headers) # 將字符串轉為json格式 result = json.loads(response.text) items = result['comments'] for item in items: # 用戶名 user_name = item['user']['nickname'].replace(',', ',') # 用戶ID user_id = str(item['user']['userId']) # 獲取用戶信息 user_message = get_user(user_id) # 用戶年齡 user_age = str(user_message['age']) # 用戶性別 user_gender = str(user_message['gender']) # 用戶所在地區 user_city = str(user_message['city']) # 個人介紹 user_introduce = user_message['sign'].strip().replace('\n', '').replace(',', ',') # 評論內容 comment = item['content'].strip().replace('\n', '').replace(',', ',') # 評論ID comment_id = str(item['commentId']) # 評論點贊數 praise = str(item['likedCount']) # 評論時間 date = time.localtime(int(str(item['time'])[:10])) date = time.strftime("%Y-%m-%d %H:%M:%S", date) print(user_name, user_id, user_age, user_gender, user_city, user_introduce, comment, comment_id, praise, date) with open('music_comments.csv', 'a', encoding='utf-8-sig') as f: f.write(user_name + ',' + user_id + ',' + user_age + ',' + user_gender + ',' + user_city + ',' + user_introduce + ',' + comment + ',' + comment_id + ',' + praise + ',' + date + '\n') f.close()
小編推薦一個學python的學習qun 945,8790,25
無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!
創建函數,獲取注冊信息
def get_user(user_id): """ 獲取用戶注冊時間 """ data = {} url = 'https://music.163.com/api/v1/user/detail/' + str(user_id) response = requests.get(url=url, headers=headers) # 將字符串轉為json格式 js = json.loads(response.text) if js['code'] == 200: # 性別 data['gender'] = js['profile']['gender'] # 年齡 if int(js['profile']['birthday']) < 0: data['age'] = 0 else: data['age'] = (2018 - 1970) - (int(js['profile']['birthday']) // (1000 * 365 * 24 * 3600)) if int(data['age']) < 0: data['age'] = 0 # 城市 data['city'] = js['profile']['city'] # 個人介紹 data['sign'] = js['profile']['signature'] else: data['gender'] = '無' data['age'] = '無' data['city'] = '無' data['sign'] = '無' return data
創建分頁主函數
def main(): # 前500頁 # for i in range(210000, 230000, 20): # 后500頁 for i in range(0, 25000, 20): print('\n---------------第 ' + str(i // 20 + 1) + ' 頁---------------') get_comments(i)
執行函數
if __name__ == '__main__': main()
哈哈,感覺如何呀?是不是不難的?歡迎大家一起共同學習交流
程序運行結果
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。