【Python爬蟲實戰】使用Selenium爬取QQ音樂歌曲及評論資訊
from selenium import webdriver
import csv
from time import sleep
import time
#
# Author : ATFWUS
# Date : 2021-03-21 20:00
# Version : 1.0
# 爬取周杰倫最熱門五首歌曲的基本資訊,歌詞,前五百條熱門評論
# 此程式碼僅供交流學習使用
#
#1. 建立 Chrome 瀏覽器物件,這會在電腦上在開啟一個瀏覽器視窗
driver=webdriver.Chrome(executable_path="C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
#2. 開啟 QQ 音樂 - 周杰倫頁面
driver.get("https://y.qq.com/n/yqq/singer/0025NhlN2yWrP4.html")
#3. 配置
csv_file = open('songs.csv','w',newline='',encoding='utf-8')
writer = csv.writer(csv_file)
start = time.time()
# 取前 5 首歌曲
song_numer=5
song_url_list=[]
song_resourses=[]
songlist__item=driver.find_elements_by_class_name("songlist__item")
# 獲取所有歌曲 url
for song in songlist__item:
song__url=song.find_element_by_class_name("js_song").get_attribute("href")
song_url_list.append(song__url)
song_numer-=1
if(song_numer==0):
break
# print(song_url_list)
print(" 已獲取周杰倫熱門歌曲列表前五首的 url")
print()
# 獲取一首歌曲所需要的資訊
def getSongResourse(url):
song_resourse={}
driver.get(url)
# 這個 0.5 秒用於等待非同步請求的完成
sleep(0.8)
# 獲取歌曲名
song_name=driver.find_element_by_class_name("data__name_txt").text
print(" 開始獲取歌曲《 "+song_name+" 》的基本資訊 ")
# 獲取流派,發行時間,評論數
song_liupai = driver.find_element_by_css_selector(".js_genre").text[3:]
song_time = driver.find_element_by_css_selector(".js_public_time").text[5:]
song_comment_num = driver.find_element_by_css_selector(".js_into_comment").text[3:-1]
print(" 歌曲《 " + song_name + " 》外匯跟單gendan5.com基本資訊獲取完畢 ")
print(" 開始獲取歌曲《 " + song_name + " 》的歌詞 ")
# 點選展開歌詞
driver.find_element_by_partial_link_text("[ 展開 ]").click()
sleep(0.3)
lyic=""
# 獲取拼接歌詞
lyic_box=driver.find_element_by_id("lrc_content").find_elements_by_tag_name("p")
for l in lyic_box:
if l.text!="":
lyic+=l.text+"\n"
print(" 歌曲《 " + song_name + " 》的歌詞獲取完畢 ")
print(" 開始獲取歌曲《 " + song_name + " 》的第 1-15 條熱門評論 ")
# 獲取 500 條評論
comments=[]
# 點選載入更多 29 次,每次多出 15 條評論
for i in range(33):
driver.find_element_by_partial_link_text(" 點選載入更多 ").click()
print(" 開始獲取歌曲《 " + song_name + " 》的第 "+str((i+1)*15+1)+"-"+str((i+2)*15)+" 條熱門評論 ")
sleep(0.5)
comments_list=driver.find_element_by_css_selector(".js_hot_list").find_elements_by_tag_name("li")
for com in comments_list:
content=com.find_element_by_css_selector(".js_hot_text").text
content_time=com.find_element_by_css_selector(".comment__date").text
zan_num=com.find_element_by_class_name("js_praise_num").text
comment = {}
comment.update({" 評論內容 ":content})
comment.update({" 評論時間 ":content_time})
comment.update({" 評論點贊次數 ":zan_num})
comments.append(comment)
print(" 歌曲《 " + song_name + " 》的前五百條熱門評論獲取完畢 ")
print(" 歌曲《 "+song_name+" 》所有資訊獲取完畢 ")
print()
song_resourse.update({" 歌曲名 ":song_name})
song_resourse.update({" 流派 ":song_liupai})
song_resourse.update({" 發行時間 ":song_time})
song_resourse.update({" 評論數 ":song_comment_num})
song_resourse.update({" 歌詞 ":lyic})
song_resourse.update({"500 條精彩評論 ":comments})
return song_resourse
for song_page in song_url_list:
song_resourses.append(getSongResourse(song_page))
# break
print(" 正在寫入 CSV 檔案 ...")
for i in song_resourses:
writer.writerow([i[" 歌曲名 "],i[" 流派 "],i[" 發行時間 "],i[" 評論數 "],i[" 歌詞 "]])
for j in i["500 條精彩評論 "]:
writer.writerow([j[" 評論內容 "],j[" 評論時間 "],j[" 評論點贊次數 "]])
writer.writerow([])
csv_file.close()
end = time.time()
print(" 爬取完成,總耗時 "+str(end-start)+" 秒 ")
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2764730/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網易雲音樂評論爬蟲(2):歌曲的全部評論爬蟲
- 如何用Python網路爬蟲爬取網易雲音樂歌曲Python爬蟲
- Java爬蟲系列之實戰:爬取酷狗音樂網 TOP500 的歌曲Java爬蟲
- python網路爬蟲--專案實戰--scrapy嵌入selenium,晶片廠級聯評論爬取(6)Python爬蟲晶片
- Python爬蟲實踐--爬取網易雲音樂Python爬蟲
- 爬蟲實戰(二):Selenium 模擬登入並爬取資訊爬蟲
- python 爬蟲 1 爬取酷狗音樂Python爬蟲
- Python爬蟲實戰:爬取淘寶的商品資訊Python爬蟲
- 網易雲音樂評論爬蟲(1):全部熱門歌曲及其 id 號爬蟲
- Python爬取網易雲音樂歌單歌曲Python
- Python 爬蟲獲取網易雲音樂歌手資訊Python爬蟲
- python爬取qq音樂歌手排行熱度資料Python
- Python爬蟲如何去抓取qq音樂的歌手資料?Python爬蟲
- 如何利用 Selenium 爬取評論資料?
- 爬蟲實戰(一):爬取微博使用者資訊爬蟲
- 10、 在QQ音樂中爬取某首歌曲的歌詞
- 爬蟲Selenium+PhantomJS爬取動態網站圖片資訊(Python)爬蟲JS網站Python
- Python爬蟲實戰案例-爬取幣世界標紅快訊Python爬蟲
- python爬蟲:瞭解JS加密爬取網易雲音樂Python爬蟲JS加密
- Python爬蟲之路-selenium在爬蟲中的使用Python爬蟲
- python爬蟲——爬取大學排名資訊Python爬蟲
- python爬蟲--爬取鏈家租房資訊Python爬蟲
- 爬蟲實踐之獲取網易雲評論資料資訊爬蟲
- 【python爬蟲實戰】使用Selenium webdriver採集山東招考資料Python爬蟲Web
- python 爬蟲實戰專案--爬取京東商品資訊(價格、優惠、排名、好評率等)Python爬蟲
- Python爬蟲實踐-網易雲音樂Python爬蟲
- 小白學 Python 爬蟲(25):爬取股票資訊Python爬蟲
- Python爬蟲實戰詳解:爬取圖片之家Python爬蟲
- 爬蟲實戰——58同城租房資料爬取爬蟲
- python 爬取騰訊視訊的全部評論Python
- Python 爬蟲實戰Python爬蟲
- [Python3網路爬蟲開發實戰] 7-動態渲染頁面爬取-4-使用Selenium爬取淘寶商品Python爬蟲
- Python爬蟲爬取淘寶,京東商品資訊Python爬蟲
- Python爬蟲 ---scrapy框架初探及實戰Python爬蟲框架
- Python爬蟲之js加密破解,抓取網易雲音樂評論生成詞雲Python爬蟲JS加密
- python實現selenium網路爬蟲Python爬蟲
- 爬蟲-selenium的使用爬蟲
- Python 爬蟲獲取網易雲音樂歌手歌詞Python爬蟲