スクレイピング処理のエラーをスキップして処理を続けたい
勉強不足、理解不足ですみません。スクレピングのプログラムをつくりました。URLの末尾
~/detail.php?id={}'の数字をfor文で変更して連続して処理をするのですが
途中でエラーが出て処理が止まるので、エラーのある箇所を飛ばして、処理を続けたいのです。
よろしくお願いいたします。
発生している問題・エラー
---------------------------------------------------------------------------
IndexError Traceback (most recent call last
13
14 td_tags = soup.find_all('td')
---> 15 td_01 = td_tags[10].text
16 td_02 = td_tags[12].text
17 d = {'td_01': td_01,
``
### 該当するソースコード
for i in range(30260,30270):
print('d_listみる:', len(d_list))
# 変数target_urlに、アクセス先のURLを格納する
target_url = url.format(i)
# print()してtarget_urlを確認する
print(target_url)
# 2. `Requests`を使って設定したURLにアクセスする
r = requests.get(target_url)
sleep(1)
# 取得結果を解析してsoupに収納
soup = BeautifulSoup(r.text)
# 設定したtd_tagsへ収納
td_tags = soup.find_all('td')
td_01 = td_tags[10].text
td_02 = td_tags[12].text
d = {'td_01': td_01,
'td_02': td_02,
}
d_list.append(d)
print(d)
この流れで、対象のURLに30265番が欠損しており、td_tagsを作れないのでエラーが出ているとおもうのですが
URLの欠損値をどんどん飛ばしてfor文を回したいのです。
```
自分で試したこと
if IndexError: else とかで続けていけるような気がするのですが、よくわからず、困っております
どなたか、アイディアをいただけますと幸いです
よろしくお願いいたします。
0