0

如果我的标签继续更改如下:

<tr id="CN13FUT">
<tr id="CU13FUT">
<tr id="CZ13FUT">
<tr id="CH14FUT">
[...]

如何在使用 BeautifulSoup 时阅读此内容?这是我需要帮助的:

table = BeautifulSoup(page)
for tr in table.findAll('tr', attrs = {'id': 'something_here'))
   print tr

我不想仅仅table.findAll('tr')因为可能有其他tr我不想要的标签而使用,我只想要它在上面的格式中显示的方式。

4

2 回答 2

0

如果所有 id 属性都以“FUT”结尾,那么

for tr in table.findAll(id=re.compile('FUT$')):
    print(tr)
    print(tr['id']) # to print the id attributes

如果所有 id 属性的长度相同 (7),则

for tr in table.findAll('tr', id=lambda x: x and len(x)==7):
    print(tr['id']) # to print the id attributes
于 2013-07-02T01:34:16.557 回答
0

您可以使用正则表达式模式来指定<tr>您想要的 s:

import bs4 as bs
import re

doc = '''<tr id="CN13FUT">
    <tr id="CU13FUT">
    <tr id="CZ13FUT">
    <tr id="CH14FUT">
    <tr id="ButNotThis">
   '''
table = bs.BeautifulSoup(doc)
for tr in table.findAll(id=re.compile(r'CN13|CU13|CZ13|CH14')):
    print(tr)

产量

<tr id="CN13FUT">
</tr>
<tr id="CU13FUT">
</tr>
<tr id="CZ13FUT">
</tr>
<tr id="CH14FUT">
</tr>
于 2013-07-02T01:16:31.113 回答