私は完全に困惑しています。大きなテーブルからスクレイピングした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
1回だけであることがわかりました。それlistiterator
は私が理解するのに苦労しているタイプです。
私は、forループを使用して何かを反復処理できる場合、text_children[0]のような任意の1つの要素を呼び出すことができると想定できることに慣れています。イテレータの場合はそうではないようです。リストを作成する場合:
my_array = ["one","two","three"]
my_array[1]
配列の2番目の項目を表示するために使用できます。これを実行しようとするとtext_children[1]
、エラーが発生します。
TypeError: 'listiterator' object is not subscriptable
イテレータの内容を取得するにはどうすればよいですか?