これは興味深いです。私はなぜそれが起こるのか分からないが、ここに回避策がある。
最初にすべてのtd
タグをリストにプルし、そのタグに含まれているテキストに基づいてフィルタリングすることができます。
td_all = soup.findAll('td')
location = list(filter(lambda td: 'Taken at.' in td.text, td_all))
あなたは一度だけあなたのコード内location
を反復処理するつもりなら、それはlist
変換を削除し、あなたのループ内で直接filter
オブジェクトを使用することをお勧めします:
location = filter(lambda td: 'Taken at.' in td.text, td_all)
編集:代替ソリューション
スクラップしようとしているページが十分に構造化されています。したがって、少なくともあなたの質問で言及したページのためにそれをナビゲートするのは簡単です。
各画像インデックスはtr
に含まれているので、最初にすべての画像インデックスをリストに取り込むことができます。しかし、これらの各要素の中にネストされたテーブルがあるので、findAll
メソッドのrecursive=False
引数を使用して実行できる直接的な子のみをフェッチする必要があります。
trows = soup.table.tbody.findAll('tr', recursive=False)
for trow in trows[1:]:
print(trow.findAll('tr')[1].td.text)
最初のものがヘッダー行であるため、リストの2番目の項目からのみ繰り返しました。
Taken at. ANBG nursery
Taken at. ANBG
Taken at. ANBG
Taken at. Robertson to Belmore Falls Road, NSW
Taken at. Robertson to Belmore Falls Road, NSW
Taken at. Robertson to Belmore Falls Road, NSW
Taken at. Robertson to Belmore Falls Road, NSW
Taken at. Back Hillston Rd, near Goolgowi, NSW
Taken at. shoreline, Tuross Head, NSW
Taken at. shoreline, Tuross Head, NSW
Taken at. shoreline, Tuross Head, NSW
Taken at. shoreline, Tuross Head, NSW
Taken at. shoreline, Tuross Head, NSW
Taken at. Tuross Head, near Memorial Gardens, Tuross, NSW
Taken at. Tuross Head, near Memorial Gardens, Tuross, NSW
Taken at. Lake Conjola beach, N of Ulladulla, NSW
Taken at. Chain Valley Bay, Lake Macquarie State Conservation Area, NSW
Taken at. Chain Valley Bay, Lake Macquarie State Conservation Area, NSW
Taken at. Wright's Lookout walk, New England Nat Pk, NSW
Taken at. Wright's Lookout walk, New England Nat Pk, NSW
Taken at. Wright's Lookout walk, New England Nat Pk, NSW
Taken at. Boondall Wet Lands, Brisbane QLD
Taken at. Boondall Wet Lands, Brisbane QLD
Taken at. Boondall Wet Lands, Brisbane QLD
Taken at. see Australian Tropical Rainforest Plants Key
Taken at. see Australian Tropical Rainforest Plants Key
Taken at. see Australian Tropical Rainforest Plants Key
Taken at. see Australian Tropical Rainforest Plants Key
Taken at. see Australian Tropical Rainforest Plants Key
Taken at. see Australian Tropical Rainforest Plants Key
それは私ではなく、さらに最初の 'td'コンテナ – RomanPerekhrest
謝罪、現在のコードでは何も返しません例はコードを壊しているに違いありません。私は質問を編集させてください。 –
@RomanPerekhrestコードが機能していなかったことを指摘してくれてありがとう。今すぐ働かなければならない。 –