Python 爬取网易云音乐评论
刘瑞琦how_to_reg
•
24 天前
•
3 评论
•
326 浏览
import time,json
from selenium import webdriver
class Music(object):
# 初始化
def __init__(self, url):
self.url = url
self.driver = webdriver.Chrome()
# 打开浏览器
def get_url(self):
# 打开url
self.driver.get(self.url)
# 进入第一个格子
self.driver.switch_to.frame(0)
# 将滚动条拉倒底部
js = 'window.scrollBy(0,6666)'
self.driver.execute_script(js)
# 存放提取的内容
kw = []
# 第20页结束
for _ in range(0, 21):
# 获取数据
html = self.driver.find_elements_by_xpath('//div[@class="cmmts j-flag"]/div')
for i in html:
cover = i.find_element_by_xpath('.//div[@class="head"]/a/img').get_attribute('src')
uid = i.find_element_by_xpath('.//div[@class="head"]/a').get_attribute('href')
yes = i.find_element_by_xpath('.//div[@class="cnt f-brk"]').text
# 以json的形式输出
data = {
# 头像
'cover': cover.split('?')[0],
# ID
'uid': uid.split('=')[-1],
# 昵称
'name': yes.split(':')[0],
# 评论
'commit': yes.split(':')[1]
}
# 追加到空数组中
kw.append(data)
# 输出内容
print(data)
# 点击下一页
rang = self.driver.find_element_by_partial_link_text('下一页')
rang.click()
# 卡1秒防止内容未被加载出来
time.sleep(1)
# 保存
# with open(r'../Image.json', 'a', encoding='UTF-8')as f:
# f.write(json.dumps(kw, ensure_ascii=False, indent=4))
if __name__ == '__main__':
music = Music('https://music.163.com/#/song?id=1441758494')
music.get_url()