0


如何使用Python、Selenium 爬取酷狗音乐网站的歌曲信息

在这篇文章中,我们将学习如何使用Python、Selenium和BeautifulSoup进行网络爬虫。我们将创建一个简单的爬虫,用于从酷狗音乐网站抓取歌曲信息。

依赖库

我们将使用以下工具和库:

  • Python:我们的编程语言
  • Selenium:一个用于网页自动化的工具,可以模拟用户的浏览行为
  • BeautifulSoup:一个用于解析HTML和XML文档的Python库
  • urllib:一个用于处理URL的Python模块

完整代码如下:

import urllib.parse
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 设置Chrome选项
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

# 初始化浏览器对象
driver = webdriver.Chrome(options=chrome_options)

# 添加headers,模拟浏览器请求
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}

# URL参数编码
keyword = input('请输入歌手:')
search_url = f'https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord={urllib.parse.quote(keyword)}'

# 第一步:使用Selenium打开页面
driver.get(search_url)

# 获取页面源代码
html_content = driver.page_source

# 关闭浏览器
driver.quit()

# 第二步:解析HTML内容以提取所需的歌曲信息
soup = BeautifulSoup(html_content, 'html.parser')
songs = soup.find_all('a', class_='song_name')

# 打印所有歌曲的信息
for song in songs:
    title = song.get('title')
    print(f'Title: {title}')

运行结果:

该代码运行后会根据用户输入的歌手名,在酷狗音乐网站搜索相关歌曲,并打印出歌曲名称。

代码解析

设置Chrome选项

首先,我们需要设置Chrome的一些选项。这些选项包括:

  • --headless:这个选项让Chrome在后台运行,也就是无头模式。
  • --disable-gpu:这个选项禁用了GPU硬件加速。
  • --no-sandbox:这个选项禁用了沙箱模式。
  • --disable-dev-shm-usage:这个选项禁止使用/dev/shm
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

driver = webdriver.Chrome(options=chrome_options)

添加headers

我们需要添加headers来模拟浏览器请求。这是因为一些网站可能会阻止没有headers的请求。

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}

URL参数编码

我们需要对URL参数进行编码,以便在URL中使用。我们使用urllib模块的

quote

函数来实现这一点。

import urllib.parse

keyword = input('请输入歌手:')
search_url = f'https://www.kugou.com/yy/html/search.html#searchType=song&searchKeyWord={urllib.parse.quote(keyword)}'

使用Selenium打开页面

我们使用Selenium的

get

方法来打开页面。

html_content = driver.page_source

获取页面源代码

我们使用Selenium的

page_source

属性来获取页面源代码。

driver.get(search_url)

关闭浏览器

完成所有操作后,我们需要关闭浏览器。

driver.quit()

解析HTML内容以提取所需的歌曲信息

我们使用BeautifulSoup来解析HTML内容,并提取我们需要的歌曲信息。

soup = BeautifulSoup(html_content, 'html.parser')
songs = soup.find_all('a', class_='song_name')

for song in songs:
    title = song.get('title')
    print(f'Title: {title}')

其他文章推荐

  1. 使用Python和Selenium爬取QQ新闻热榜-CSDN博客
  2. 使用 Python 并发获取系统进程信息-CSDN博客
  3. Python 文件搜索程序详解与实现-CSDN博客
  4. 在 Python 中编写一个简单的文件搜索工具-CSDN博客
  5. 在Python中打印所有ASCII字符-CSDN博客

相关类型推荐

  1. 用Python和Selenium自动化浏览器操作:这篇文章详细介绍了如何使用Selenium库自动化浏览器操作,包括基本配置和一些常见的应用场景。
  2. BeautifulSoup入门教程:如何解析和处理HTML:学习如何使用BeautifulSoup库解析HTML文档,并提取所需的信息。这篇文章包括了详细的代码示例和解释。
  3. 使用Python进行网络爬虫的最佳实践:在这篇文章中,你将学习如何编写高效、可靠的网络爬虫,以及如何处理反爬虫机制和数据清洗等问题。
  4. Scrapy入门教程:高级网络爬虫的开发指南:这篇文章介绍了一个更强大、更灵活的网络爬虫框架——Scrapy,并展示了如何使用Scrapy进行复杂的网络爬虫任务。
  5. 用Flask创建一个简单的Web应用:学习如何使用Flask框架创建一个简单的Web应用,从安装配置到实现一个基本的CRUD操作。
  6. Python数据可视化:使用Matplotlib和Seaborn创建美观的图表:这篇文章介绍了如何使用Matplotlib和Seaborn库进行数据可视化,包括一些高级的图表和自定义技巧。
  7. 如何使用Requests库进行HTTP请求:详细介绍了Python中的Requests库,展示了如何进行GET和POST请求,以及如何处理响应数据。

说明

本文介绍了如何使用Python、Selenium和BeautifulSoup从酷狗音乐网站爬取歌曲信息。通过设置Chrome选项、模拟浏览器请求、URL参数编码和解析HTML内容,我们能够成功提取出相关的歌曲名称。这种方法不仅适用于酷狗音乐网站,也可以应用于其他类似的网页爬取任务。

总结

这就是我们如何使用Python、Selenium和BeautifulSoup进行网络爬虫的全部内容。希望你喜欢这篇文章,并从中学到一些新的知识。如果你有任何问题或建议,欢迎在下面的评论区留言。谢谢你的阅读!

结论

使用Python、Selenium和BeautifulSoup进行网络爬虫是一个强大的组合,可以帮助我们自动化地从网页中提取信息。本文的示例展示了如何从酷狗音乐网站抓取歌曲信息,提供了详细的代码和步骤解析,希望能为你的网络爬虫项目提供一些有用的参考。欢迎在评论区留言。继续探索和学习,祝你在深度学习的旅程中取得更多的成果!🚀


希望这个结论对你有所帮助!如果你有任何其他问题或需要进一步的帮助,请随时告诉我。😊

标签: selenium 爬虫 chrome

本文转载自: https://blog.csdn.net/m0_74972192/article/details/140780589
版权归原作者 LIY若依 所有, 如有侵权,请联系我们删除。

“如何使用Python、Selenium 爬取酷狗音乐网站的歌曲信息”的评论:

还没有评论