我有多个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/

10-09 18:07
查看更多