使用selenium爬取网易云音乐评论
时间: 2023-08-16 11:10:56 浏览: 117
爬取网易云音乐评论
3星 · 编辑精心推荐
好的,以下是使用Selenium爬取网易云音乐评论的步骤:
1. 安装Selenium和Chrome浏览器驱动。
```python
!pip install selenium
```
Chrome浏览器驱动下载地址:http://chromedriver.chromium.org/downloads
2. 导入必要的库和设置浏览器驱动路径。
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 设置浏览器驱动路径
driver_path = 'chromedriver的路径'
```
3. 打开网易云音乐网站并搜索指定的歌曲。
```python
# 打开网易云音乐网站
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://music.163.com/')
# 切换到iframe中
driver.switch_to.frame("contentFrame")
# 搜索指定的歌曲
search = driver.find_element_by_xpath('//*[@id="m-search-input"]')
search.send_keys('告白气球')
search.send_keys(Keys.RETURN)
# 等待页面加载完成
time.sleep(3)
```
4. 打开歌曲的评论页面并切换到最新评论。
```python
# 打开歌曲详情页
song_link = driver.find_element_by_xpath('//*[@id="song-0"]/div[2]/div/div[1]/div[1]/a')
song_link.click()
# 点击展开评论
comment_button = driver.find_element_by_xpath('//*[@id="cnt_comment_count"]')
comment_button.click()
# 切换到最新评论
comment_tab = driver.find_element_by_xpath('//*[@id="comment-box"]/div[1]/div[1]/ul/li[2]/a')
comment_tab.click()
# 等待页面加载完成
time.sleep(3)
```
5. 模拟滚动鼠标操作,加载更多评论。
```python
# 模拟滚动鼠标操作,加载更多评论
for i in range(10):
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(2)
```
6. 获取所有评论的用户名和内容。
```python
# 获取所有评论的用户名和内容
comment_list = driver.find_elements_by_xpath('//*[@id="comment-box"]/div[1]/div[3]/div')
for comment in comment_list:
username = comment.find_element_by_xpath('./div[2]/a').text
content = comment.find_element_by_xpath('./div[1]/div[1]').text
print(username, content)
```
7. 关闭浏览器。
```python
# 关闭浏览器
driver.quit()
```
完整代码如下:
```python
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
# 设置浏览器驱动路径
driver_path = 'chromedriver的路径'
# 打开网易云音乐网站
driver = webdriver.Chrome(executable_path=driver_path)
driver.get('https://music.163.com/')
# 切换到iframe中
driver.switch_to.frame("contentFrame")
# 搜索指定的歌曲
search = driver.find_element_by_xpath('//*[@id="m-search-input"]')
search.send_keys('告白气球')
search.send_keys(Keys.RETURN)
# 等待页面加载完成
time.sleep(3)
# 打开歌曲详情页
song_link = driver.find_element_by_xpath('//*[@id="song-0"]/div[2]/div/div[1]/div[1]/a')
song_link.click()
# 点击展开评论
comment_button = driver.find_element_by_xpath('//*[@id="cnt_comment_count"]')
comment_button.click()
# 切换到最新评论
comment_tab = driver.find_element_by_xpath('//*[@id="comment-box"]/div[1]/div[1]/ul/li[2]/a')
comment_tab.click()
# 等待页面加载完成
time.sleep(3)
# 模拟滚动鼠标操作,加载更多评论
for i in range(10):
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
time.sleep(2)
# 获取所有评论的用户名和内容
comment_list = driver.find_elements_by_xpath('//*[@id="comment-box"]/div[1]/div[3]/div')
for comment in comment_list:
username = comment.find_element_by_xpath('./div[2]/a').text
content = comment.find_element_by_xpath('./div[1]/div[1]').text
print(username, content)
# 关闭浏览器
driver.quit()
```
注意:爬虫行为容易引起网站的反爬虫机制,使用时请注意合理使用,避免对网站造成影响。
阅读全文