私はPythonにとって非常に新しいです。これは、実際に私が初めて作成したプログラムです。それは途中でウェブサイトのサイトマップとコレクションデータを経由している単純なWebクローラーです。このループは問題なく何度も実行され、すべてのファイルはこのループを3000回以上実行します。約100のファイルの後、私は範囲外のエラーのインデックスを取得し、私は理由を知りません。Pythonループ:インデックスが範囲外ですERROR
for item in soup.find_all('loc'):
newsItem = {
'Category': '',
'Title': '',
'Url': ''
}
newsItem['Category'] = list(filter(None, item.text.replace(
'http://www.nu.nl', '').replace('.html', '').split('/')))[0].title()
newsItem['Title'] = list(filter(None, item.text.replace(
'http://www.nu.nl', '').replace('.html', '').split('/')))[2].replace('-', ' ').title()
newsItem['Url'] = item.text
newsItems.append(newsItem)
print_progress(counter, len(soup.find_all('loc')), 'Progress:')
counter += 1
エラー:ここでの問題を与えているループである
Traceback (most recent call last):
File "theVerge.py", line 52, in <module>
'http://www.nu.nl', '').replace('.html', '').split('/')))[2].replace('-', ' ').title()
IndexError: list index out of range
あなたが見た例外のスタックトレースを含めるために役立つだろう。このコードを読んで、私は
が、私は入力の例を持っていた場合でも、どうなるのか見当がつかない。一つの推測では、複数の '/'を持たないURLを打っているということでしょうか?したがって、 'Title'属性を抽出しようとすると例外が発生します... – user
try-exceptブロックを使用してみませんか? –
@ t.m.adam、そう、それは私が最後にやったことです。 1.2mループではコンテンツがない1つのURLがあったようです... –