🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

2316閲覧

IndexError: list index out of range の回避

hunter_sql

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/02/22 08:21

データを取得すると、たまに下記の表示が出て止まってしまいます。
その回避方法が知りたいです。


IndexError Traceback (most recent call last)
<ipython-input-3-a0c61e08ae5b> in <module>
15 soup = BeautifulSoup(res.text, 'html.parser')
16
---> 17 j = soup.find_all("script", {"type": "application/ld+json"})[0].contents[0]
18 data = json.loads(j)
19

IndexError: list index out of range

python

1import openpyxl 2import requests 3from bs4 import BeautifulSoup 4import json 5 6 7for i in range(2,10,1): 8 9 workbook = openpyxl.load_workbook('20210219_uber_info_get_1_6_1.xlsx') 10 sheet = workbook["Sheet1"] 11 url = sheet.cell(i, 2).value 12 13 #情報の取得のための準備 14 res = requests.get(url) 15 soup = BeautifulSoup(res.text, 'html.parser') 16 17 j = soup.find_all("script", {"type": "application/ld+json"})[0].contents[0] 18 data = json.loads(j) 19 20 #カテゴリー情報の取得 21 category_infomation = soup.find('a', attrs={'class': 'd9'}) 22 sheet.cell(i, 3).value = category_infomation.text 23 24 #電話情報 25 phone_infomation = data["telephone"] 26 sheet.cell(i, 4).value = phone_infomation 27 28 #保存 29 workbook.save('20210219_uber_info_get_1_6_1.xlsx') 30 # 終了 31 workbook.close() 32 print(i) 33 34 35print("完了")

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

{"type": "application/ld+json"} を付けたために、
soup.find_all("script", {"type": "application/ld+json"})が[]となり、
その第ゼロ要素を参照しようとしてlist index out of rangeになっています。
必要性がなければ、
j = soup.find_all("script",)[0].contents[0]
に変更してはいかがでしょうか。

投稿2021/02/22 09:34

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問