python selenium 爬取网易云音乐歌曲评论

本文介绍了如何使用Python的selenium库爬取网易云音乐的歌曲评论。首先获取页面上的所有歌曲URL,然后逐个访问并处理切换iframe的细节,因为评论内容在iframe中。通过这种方法,成功抓取到了每个歌曲页面的评论。

目标网站
在这里插入图片描述
这是评论页
在这里插入图片描述
思路是先获取这一页全部歌曲的url,然后再逐个访问url获取评论
这里主要还是切换iframe的问题
在这里插入图片描述
打开歌曲的评论页后由于刷新了页面,要再切进iframe
在这里插入图片描述
结果:

在这里插入图片描述
完整代码:

import  time
from selenium import webdriver

class Song_Spider():
    def __init__(self):
        self.url = 'https://music.163.com/#/playlist?id=2698698442'
        # 创建浏览器 对象
        self.window = webdriver.Chrome('./chromedriver')
        self.song_url_list = []

    def get_first_page(self):
        self.window.get(self.url) # 在当前窗口中访问网址
        frame = self.window.find_element_by_id('g_iframe')
        self.window.switch_to.frame(frame)

    def get_song_url_list(self):
        song_element_list = self.window.find_elements_by_xpath('//table[@class="m-table "]/tbody/tr/td[2]/div/div/div/span/a')
        for element in song_element_list:
            self.song_url_list.append(element.get_attribute('href'))
        print(self.song_url_list)

    def get_song_comment(self):
        for song_url in self.song_url_list:
            self.window.get(song_url)
            frame = self.window.find_element_by_id('g_iframe')
            self.window.switch_to.frame(frame)
            time.sleep(2)
            comments = self.window.find_elements_by_xpath('//div[@class="itm"]/div[2]/div/div')
            for comment in comments:  # 只爬了一页的评论,没有做翻页
                print(comment.text)
            print('*'*50)

if __name__ == '__main__':
    spider = Song_Spider()
    spider.get_first_page()
    time.sleep(2)
    spider.get_song_url_list()
    spider.get_song_comment()
    spider.window.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值