回答編集履歴
3
追記
answer
CHANGED
@@ -38,4 +38,29 @@
|
|
38
38
|
|
39
39
|
Pythonはインデントが重要な言語です。
|
40
40
|
質問文のソースコード部分を以下を参考に編集してくださいな。
|
41
|
-

|
41
|
+

|
42
|
+
|
43
|
+
wh = []
|
44
|
+
wh.append(wd.current_window_handle) #ウィンドウ番号の習得
|
45
|
+
|
46
|
+
---
|
47
|
+
> whの複数保持の方法
|
48
|
+
|
49
|
+
質問者が該当のコードを記述しているのにその質問が来るのが少し謎ですが・・・
|
50
|
+
ウィンドウ番号を下記コードで複数保持しています。
|
51
|
+
```Python
|
52
|
+
wh = []
|
53
|
+
while num < len(numbers): #個数分、ブラウザ起動
|
54
|
+
wh.append(wd.current_window_handle) #ウィンドウ番号の習得
|
55
|
+
```
|
56
|
+
よって同じように
|
57
|
+
```
|
58
|
+
wdl = []
|
59
|
+
while num < len(numbers): #個数分、ブラウザ起動
|
60
|
+
wd = web.Chrome()
|
61
|
+
# 中略
|
62
|
+
wdl.append(wd)
|
63
|
+
```
|
64
|
+
|
65
|
+
回答した後に気づきましたが、yahooファイナンスは`https://finance.yahoo.co.jp/` [Yahoo!ファイナンスヘルプ](https://www.yahoo-help.jp/app/answers/detail/p/546/a_id/93575)規約によりスクレイピングを禁止しています。
|
66
|
+
という訳でこれ以上は回答できかねるので悪しからずご容赦くださいな。
|
2
追記
answer
CHANGED
@@ -10,12 +10,30 @@
|
|
10
10
|
|
11
11
|
---
|
12
12
|
|
13
|
-
カウンタ変数を手動でインクリメントするのはバグの元なので、できるだけ避けてください。
|
13
|
+
カウンタ変数を手動でインクリメント(加算)するのはバグの元なので、できるだけ避けてください。
|
14
14
|
カウンタ変数の値を正しく更新するのは、プログラマー側の責任になりそして人は容易に間違えます。
|
15
|
+
代替手段として`enumerate`と`range`が使えます。
|
16
|
+
参考情報:[Pythonのfor文によるループ処理(range, enumerate, zipなど)](https://note.nkmk.me/python-for-usage/)
|
17
|
+
この指摘をした理由は
|
18
|
+
質問文のソースコードより抜粋しますが、以下の部分は正しく実装されていないのではと思ったからです。
|
19
|
+
```Python
|
20
|
+
num = 0
|
21
|
+
while num <len(numbers):
|
22
|
+
print(wh[num])
|
23
|
+
wd.switch_to_window(wh[num])
|
24
|
+
wd.refresh()
|
25
|
+
try:
|
26
|
+
# 中略
|
27
|
+
num += 1
|
28
|
+
wd.switch_to_window(wh[num])
|
29
|
+
except:
|
30
|
+
# 加算後にswitch_to_windowを行っているが、while ループの先頭でもswitch_to_windowを行っている。
|
31
|
+
nun += 1
|
32
|
+
#この位置で例外発生時にwhileループが中断される。
|
33
|
+
wd.switch_to_window(wh[num])
|
34
|
+
# whileループにある、wd.refresh()が無いtryの中も同様
|
35
|
+
```
|
15
36
|
|
16
|
-
[Pythonのfor文によるループ処理(range, enumerate, zipなど)](https://note.nkmk.me/python-for-usage/)
|
17
|
-
enumerateとrangeが使えるかと。
|
18
|
-
|
19
37
|
---
|
20
38
|
|
21
39
|
Pythonはインデントが重要な言語です。
|
1
追記
answer
CHANGED
@@ -10,6 +10,14 @@
|
|
10
10
|
|
11
11
|
---
|
12
12
|
|
13
|
+
カウンタ変数を手動でインクリメントするのはバグの元なので、できるだけ避けてください。
|
14
|
+
カウンタ変数の値を正しく更新するのは、プログラマー側の責任になりそして人は容易に間違えます。
|
15
|
+
|
16
|
+
[Pythonのfor文によるループ処理(range, enumerate, zipなど)](https://note.nkmk.me/python-for-usage/)
|
17
|
+
enumerateとrangeが使えるかと。
|
18
|
+
|
19
|
+
---
|
20
|
+
|
13
21
|
Pythonはインデントが重要な言語です。
|
14
22
|
質問文のソースコード部分を以下を参考に編集してくださいな。
|
15
23
|

|