利用python爬取豆瓣音乐_Python爬虫:现学现用xpath爬取豆瓣音乐
时间: 2023-11-23 07:07:50 浏览: 74
好的,我可以给你讲解一下如何使用 Python 爬取豆瓣音乐信息。
首先需要安装相关的库,比如 requests、lxml 和 xpath。可以通过 pip install requests lxml 命令来安装。
接下来,通过 requests 库向豆瓣音乐的网页发送请求,并使用 lxml 库来解析网页内容。代码如下:
```python
import requests
from lxml import etree
url = 'https://music.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text
```
接下来,我们可以使用 lxml 库中的 etree 对象来解析 HTML 内容。这里我们使用 xpath 来获取我们需要的信息,比如歌曲名、演唱者和评分等。代码如下:
```python
tree = etree.HTML(html)
songs = tree.xpath('//tr[@class="item"]/td[2]/div/a/text()') # 歌曲名
singers = tree.xpath('//tr[@class="item"]/td[2]/div[@class="pl"]/text()') # 演唱者
ratings = tree.xpath('//tr[@class="item"]/td[2]/div[@class="star clearfix"]/span[@class="rating_num"]/text()') # 评分
```
最后,我们可以将获取到的信息输出或保存到文件中。完整代码如下:
```python
import requests
from lxml import etree
url = 'https://music.douban.com/top250'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text
tree = etree.HTML(html)
songs = tree.xpath('//tr[@class="item"]/td[2]/div/a/text()') # 歌曲名
singers = tree.xpath('//tr[@class="item"]/td[2]/div[@class="pl"]/text()') # 演唱者
ratings = tree.xpath('//tr[@class="item"]/td[2]/div[@class="star clearfix"]/span[@class="rating_num"]/text()') # 评分
for i in range(len(songs)):
print(f'{i+1}. {songs[i]} - {singers[i].strip()} - {ratings[i]}')
```
这样就可以在控制台输出豆瓣音乐 top250 的信息了。如果想要将信息保存到文件中,可以使用 Python 的文件操作来实现。
阅读全文