2013-08-18 117 views
1

新的Python和我一直在寻找使用BeautifulSoup打印所有“值所需要的”类似HTML中:Python的BeautifulSoup html标记解析问题

<!-- UNIQUE COMMENT 1 --> 
</td> 
<td class="same_class_name"> 
Value Needed A 
</td> 
<!-- UNIQUE COMMENT 2 --> 
</td> 
<td class="same_class_name"> 
Value Needed B 
</td> 
<!-- UNIQUE COMMENT 3 --> 
</td> 
<td class="same_class_name"> 
Value Needed C 
</td> 

我试着写这个代码片段:

valueNeeded = soup.body.find('td', attrs={'class':'same_class_name'}).text 
print valueNeeded 

这确实会打印出“需要的值A”,但我的问题是它没有考虑接下来的两个值。我还试图确定是否有办法在评论中找到独特的价值,然后找到价值,但仍然没有运气。

任何帮助拉出价值将不胜感激。提前致谢。

回答

0

使用find_all()

>>> valueNeeded = soup.find_all('td', attrs={'class':'same_class_name'}) 
>>> for tag in valueNeeded: 
...  print tag.text.strip() 
... 
Value Needed A 
Value Needed B 
Value Needed C 

注意,我删除了你的代码中soup.body,因为它似乎返回None我。

如果您使用的是BeautifulSoup版本3,那么您将需要使用findAll()

+0

感谢您的指导。我包含代码,但我收到以下错误:TypeError:'NoneType'对象不可调用。如果有帮助,我使用BeautifulSoup版本3。 –

+0

@JohnRay你是怎么制作汤的? – TerryA

+0

这是我如何创造汤: import mechanize from BeautifulSoup import BeautifulSoup br = mechanize.Browser() page = br.open('example.website.com') soup = BeautifulSoup(page)