使用BeautifulSoup,我尝试了以下方法:
q = soup.div.find_all("div", { "id" : "column-left" }, "h2")
但这也给了我<p>
的文字。我只想要h2是特定div的孩子。
答案 0 :(得分:0)
您为什么要访问soup.div
?
试试这个:
q = soup.find('div', { 'id' : 'column-left' }).find_all('h2')
此外,find_all还有可选参数&#39; id&#39;,因此您无需编写属性map
q = soup.find('div', id='column-left').find_all('h2')
答案 1 :(得分:0)
如果你使用最新版本的BeautifulSoup(你应该),你可以使用一个CSS选择器,无论如何它可能更容易编写和维护。 e.g:
>>> from bs4 import beautifulsoup
>>> soup = BeautifulSoup('<div id=column-left><h2>Header</h2><p>Paragraph</p><h2>Another header</h2><p>Another paragraph</p></div>')
>>> soup.select('div#column-left > h2')
[<h2>Header</h2>, <h2>Another header</h2>]