使用find_all函数返回使用Python BeautifulSoup的重复项

时间:2014-01-02 22:37:01

标签: python parsing duplicates beautifulsoup

我正在尝试使用以下代码从以下网站http://www.bodybuilding.com/exercises/list/muscle/selected/biceps获取数据:

url = "http://www.bodybuilding.com/exercises/list/muscle/selected/biceps"
data = urllib2.urlopen(url)
soup = BeautifulSoup(data)
exercises = soup.find("div", {"id":"listResults"}).find_all('div',{'class':'exerciseName'})

for exercise in exercises:
    item =  exercise.find('a')
    print str(item.string)

我希望find_all组件返回一个BS对象,其中包含从“Alternate Hammer Curl”到“Zottman Preacher Curl”的所有段。但是,它会将项目从“Alternate Hammer Curl”返回到“Dumbell Prone Incline Curl”,然后重复此列表,而不包括练习的剩余部分。

有没有人有类似的问题,find-all最终会返回一个带有重复项目的对象,例如?

1 个答案:

答案 0 :(得分:1)

我的代码在Python 2.7和3.3中运行良好。你应该检查你的BS安装。我没有尝试过除BS4以外的任何东西,但它可能与其他版本不同。