Python 爬取网易云音乐评论

刘瑞琦

how_to_reg

•

1 个月前

•

3 评论

•

381 浏览

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()

3 条评论

一起聊聊这个话题

评论一下

捷径盒让生活更简单

基于

arrow_upward