我非常困惑。我有一块 HTML 是我从一个更大的表格中刮下来的。它看起来像这样:
<td align="left" class="page">Number:\xc2\xa0<a class="topmenu" href="http://www.example.com/whatever.asp?search=724461">724461</a> Date:\xc2\xa01/1/1999 Amount:\xc2\xa0$2.50 <br/>Person:<br/><a class="topmenu" href="http://www.example.com/whatever.asp?search=LAST&searchfn=FIRST">LAST,\xc2\xa0FIRST </a> </td>
(实际上,它看起来更糟,但我正则表达式掉了很多换行符)
我需要把这些线弄出来,把日期/金额线分开。开始的地方似乎是找到那个 HTML 块的孩子。该块是一个字符串,因为这就是正则表达式将它还给我的方式。所以我做了:
text_soup = BeautifulSoup(text)
text_children = text_soup.find('td').childGenerator()
我发现我只能迭代text_children
一次,但我不明白为什么会这样。这是一种listiterator
类型,我很难理解。
我习惯于假设如果我可以使用 for 循环遍历某些内容,我可以使用诸如 text_children[0] 之类的内容调用任何一个元素。迭代器似乎并非如此。如果我创建一个列表:
my_array = ["one","two","three"]
我可以my_array[1]
用来查看数组中的第二项。如果我尝试这样做,text_children[1]
我会收到一个错误:
TypeError: 'listiterator' object is not subscriptable
如何获取迭代器的内容?