如何使用美丽的汤刮P标签

问题描述:

我设法用H2/Class/Div标签美丽的汤使用findAll函数刮网站。 (例如soup.findAll('div',{'class':'price'}) 但有一部分网站有P标签,我不知道如何刮。它有以下如何使用美丽的汤刮P标签

上市历史

<p class="top"> 
    <strong>First listed</strong><br> 
      800 on 

我想800,但在div类“边栏SBT”有一样的p类=顶部。 任何帮助,将不胜感激

感谢

网站上的多个条目
+0

也许尝试'打印'。加入(soup.p.find( 'BR'))条()分()[0]'的https采用。 ://*.com/a/31959687/1248974 – davedwards

+0

这是行不通的。我不想打印该项目。我想定义它,例如item_a = soup.findAll ... 然后做植物= item_a.get_text 我会如何做上述P标签? – hello11

+0

好吧,对不起,我不明白你到底想要什么。我会再尝试?你想把'soup.find_all'的结果赋给一个变量?或许'item_a = soup.p.find('br') print item_a.get_text()'? \ n''返回'u'\ n 800的文字? – davedwards

你可以找到t他p标签就像你使用BeautifulSoup任何其他标签:使用soup.find_all会产生的ResultSet如果有一个以上的标签

>>> from bs4 import BeautifulSoup as BS 
>>> with open('html', 'r') as f: 
...  soup = BS(f, "lxml") 
... 
>>> soup.find_all('p', attrs={'class':'top'}) 
[<p class="top"> 
<strong>First listed</strong><br/> 
      800 on 
</p>] 

。所以,从那里,你会做这样的事情:

>>> p_tags = soup.find_all('p', attrs={'class':'top'}) 
>>> for tag in p_tags: 
...  tag.get_text() 
... 
'\nFirst listed\n   800 on\n'