如何爬取周杰伦页面内的歌曲名 运用pandas、requests、BeautifulSoup库
时间: 2023-11-30 07:03:31 浏览: 80
用beautifulsoup爬页面
首先,我们需要导入所需的库:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
```
然后,我们可以利用requests库获取周杰伦的歌曲页面:
```python
url = 'https://baike.baidu.com/item/周杰伦/227181'
response = requests.get(url)
```
接着,我们可以用BeautifulSoup库对获取的页面进行解析:
```python
soup = BeautifulSoup(response.content, 'html.parser')
```
我们可以通过查看页面源代码,发现周杰伦的歌曲名保存在一个class为"songlists"的div标签中,因此我们可以通过以下代码获取所有歌曲名:
```python
song_list = []
for tag in soup.find_all('div', {'class': 'songlists'}):
for li_tag in tag.find_all('li'):
song_list.append(li_tag.text.strip())
```
最后,我们可以将歌曲名保存到一个DataFrame中:
```python
df = pd.DataFrame({'song_name': song_list})
```
完整代码如下:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://baike.baidu.com/item/周杰伦/227181'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
song_list = []
for tag in soup.find_all('div', {'class': 'songlists'}):
for li_tag in tag.find_all('li'):
song_list.append(li_tag.text.strip())
df = pd.DataFrame({'song_name': song_list})
```
需要注意的是,这种方法只适用于具有相同HTML结构的页面。如果页面结构不同,可能需要重新编写代码。另外,请注意网站的爬取规则,避免对网站造成影响。
阅读全文