teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

更に詳細

2020/07/12 10:28

投稿

A_QU.
A_QU.

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,22 +1,21 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- ここに質問の内容を詳しく書いてください。
4
3
  →cssセレクタでスクレイピングを実践し練習している最中
5
4
 
6
5
  ### 発生している問題・エラーメッセージ
7
6
 
8
7
  ```
9
- エラーメッセージ
10
- ```
11
8
  ---------------------------------------------------------------------------
12
- TypeError Traceback (most recent call last)
9
+ IndexError Traceback (most recent call last)
13
- <ipython-input-25-904e0bef0de5> in <module>()
10
+ <ipython-input-2-6e161a66c197> in <module>()
14
11
  10
15
12
  11 data=soup.select("#markdown-content > div:nth-of-type(8) > ol:nth-of-type(5) > li:nth-of-type(4)")
16
- ---> 12 print(data[str(data)].text)
13
+ ---> 12 print(data[0].text)
17
14
 
18
- TypeError: list indices must be integers or slices, not str
15
+ IndexError: list index out of range
16
+ ```
19
17
 
18
+
20
19
  ### 該当のソースコード
21
20
 
22
21
  from bs4 import BeautifulSoup
@@ -33,15 +32,13 @@
33
32
  print(data[0].text)
34
33
 
35
34
  ```ここに言語名を入力
36
- ソースコード
35
+ python
37
36
  ```
38
- python
37
+
39
38
  ### 試したこと
40
39
 
41
- ここに問題に対して試したことを記載してください。
42
- →該当のソースコードを実行しましたが上記のエラーメッセージが出ました。答えが合っていると思ったのですがエラーが出たため、data[0]を 違う数字に変更  [str(data)] と変更したが分かりません
40
+ →該当のソースコードを実行しましたが上記のエラーメッセージが出ました。答えが合っていると思ったのですがエラーが出たため、data[0]を(1,2,8,5,4等) 違う数字に変更  [str(data)] と変更したが分かりません
43
41
  ### 補足情報(FW/ツールのバージョンなど)
44
42
 
45
- ここにより詳細な情報を記載してください。
46
43
  →初学者で分かりにくい質問だと思いますがご教示いただければ幸いです
47
44
  よろしくお願いいたします。

1

分かりにくかったと思うので書き直しました

2020/07/12 10:28

投稿

A_QU.
A_QU.

スコア0

title CHANGED
@@ -1,1 +1,1 @@
1
- スクレイピングについて エラー
1
+ スクレイピング print(data[0].text) 部分が合っていると思うが何故かエラーが出る
body CHANGED
@@ -39,7 +39,7 @@
39
39
  ### 試したこと
40
40
 
41
41
  ここに問題に対して試したことを記載してください。
42
- →data[0]を 違う数字に変更  [str(data)] と変更したが分かりません
42
+ 該当のソースコードを実行しましたが上記のエラーメッセージが出ました。答えが合っていると思ったのですがエラーが出たため、data[0]を 違う数字に変更  [str(data)] と変更したが分かりません
43
43
  ### 補足情報(FW/ツールのバージョンなど)
44
44
 
45
45
  ここにより詳細な情報を記載してください。