[英]How to extract text from an HTML div tag file with BeautifulSoup?
[英]How to use a div tag as a starting point for searching an html document with BeautifulSoup
我有一个HTML文档,我想解析出具有特定ID的表,该表始终位于具有特定ID的div标记内。 这是我尝试过的:
soup = BeautifulSoup(html)
target_div = soup('div', {'id' : 'left'})
target_table = target_div.findNextSibling('table')
显然,这是行不通的。 似乎我的第二条语句返回了ResultSet,而不是在文档中四处移动(我认为这很有意义,但是我不确定如何获得我需要的东西!)。 进行这种解析的正确方法是什么?
findNextSibling
查找与原始target_div
元素包含在同一父级中的表。 您要查找div中包含的表。 .find()
使用.find()
:
target_div = soup.find('div', {'id' : 'left'})
target_table = target_div.find('table')
对于简单情况(例如包含的表),可以将标记名用作属性:
target_div = soup.find('div', {'id' : 'left'})
target_table = target_div.table
您正在调用标记,就像使用.find_all()
方法一样 。 .find_all()
返回所有匹配的标签 ,一个列表。 您必须遍历结果集,但是由于要查找单个 div(使用其ID),因此最好使用.find()
,它仅返回一个结果。
如果确实需要处理多个匹配项,只需将.find_all()
的结果视为列表即可; 循环:
for element in soup.find_all('div')
contained_table = element.find('table')
或使用索引:
second_match = soup.find_all('div')[1]
您还可以使用CSS选择器 :
target_table = soup.select('div#yourid > table#yourtableid')[0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.