我正在用Python編寫一個小文本抓取腳本。這是我第一個更大的項目,所以我有一些問題。我使用的是urllib2和BeautifulSoup。我想從一個播放列表中刪除歌曲名稱。我可以得到一首歌曲名稱或所有歌曲名稱+其他字符串,我不需要。我無法得到只有所有歌曲的名字。我的代碼,獲取我並不需要所有的歌曲名稱+其他字符串: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]
我被困一天了,我無法得到它的工作。我不明白這些東西是如何工作的。
跳過沒有'td'的行的想法非常好。如果該頁面也使用了「tbody」標籤,那會更容易。 –