我有多个tr
标记,而不同的class
是这样的:
<tr class="accordion-toggle main-row" data-parent="#OrderPackages" data-target=".packageDetails1" data-toggle="collapse" id="package1">
<td><p>01629046</p></td><td><p><a href="https://www.zaubacorp.com/director/SHARMISTHA-HANSRAJ-KAJARIA/01629046"> SHARMISTHA HANSRAJ KAJARIA</a></p>
</td><td><p>Director</p></td>
<td><p>01 November 2012</p></td>
<td><p><a href="javascript:">View other directorships</a></p></td></tr>
如果父
td.p
标记具有class =“ accordion-toggle main-row”,我想提取tr
的所有文本。<tr class="row text-good" data-parent="#OrderPackages" data-
target=".packageDetails1" data-toggle="collapse" id="package1">
<td><p>01629046</p></td><td><p><a
href="https://www.zaubacorp.com/director/SHARMISTHA-HANSRAJ-KAJARIA/01629046"> SHARMISTHA HANSRAJ KAJARIA</a></p>
</td><td><p>Director</p></td>
<td><p>01 November 2012</p></td>
<td><p><a href="javascript:">View other directorships</a></p></td></tr>
更新:这两个类在顺序上是相互依赖的-例如从第二类获取信息,并作为
Dictionary
追加到使用第一类接收的Info中。 最佳答案
尝试这个:
soup = bs.BeautifulSoup(html, 'html.parser')
trs = soup.find_all('tr', attrs={'class' : 'accordion-toggle main-row'})
trs.append(soup.find_all('tr', attrs={'class' : 'row text-good'}))
for tr in trs:
tds = tr.find_all('td')
for td in tds:
print(td.p.text)
在迭代过程中检查
tr
类的条件:if(' '.join(tr.get('class') == 'YOUR_CLASS'):
#Do something
tag.get()
返回列表而不是字符串,因此您必须加入单独的类。关于python - 如何在BeautifulSoup中找到所有带有“class =” accordion-toggle main-row”的“tr”父标签的所有“td”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47569935/