我正在用 Python 编写一个小的文本抓取脚本。这是我的第一个更大的项目,所以我遇到了一些问题。我正在使用 urllib2 和 BeautifulSoup。我想从一个播放列表中抓取歌曲名称。我可以获得一首歌曲名称或所有歌曲名称+我不需要的其他字符串。我无法仅获得所有歌曲名称。我的代码获取所有歌曲名称+我不需要的其他字符串:
import urllib2
from bs4 import BeautifulSoup
import re
response = urllib2.urlopen('http://guardsmanbob.com/media/playlist.php?char=a').read()
soup = BeautifulSoup(response)
for tr in soup.findAll('tr')[0]:
for td in soup.findAll('a'):
print td.contents[0]
和给我一首歌的代码:
print soup.findAll('tr')[1].findAll('a')[0].contents[0]
它实际上不是一个循环,所以我只能得到一个,但如果我尝试让它循环,我会得到大约 10 个相同的歌曲名称。该代码:
for tr in soup.findAll('tr')[1]:
for td in soup.findAll('td')[0]:
print td.contents[0]
我现在被困了一天,我无法让它工作。我不明白这些东西是如何工作的。