質問編集履歴

6

質問内容を分かりやすくにしました。

2021/09/24 08:19

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -36,17 +36,19 @@
36
36
 
37
37
 
38
38
 
39
+ ```
40
+
39
- ```try```でWEB側でエラーを検知して下記のコードに入れてみましたが、
41
+ tryでWEB側でエラーを検知して下記のコードに入れてみましたが、
40
42
 
41
43
  実現したい処理と上手く処理できず、
42
44
 
43
45
  全てのデータに処理済みと記載されます。
44
46
 
45
- ```if```には検索後にタイトルを取得すれば処理済みのフラグを記載するように組みました。
47
+ ifには検索後にタイトルを取得すれば処理済みのフラグを記載するように組みました。
46
-
47
-
48
-
48
+
49
+
50
+
49
- ```elese```のようにエラーしたら処理済みを記載しないようにプログラムを記載
51
+ eleseのようにエラーしたら処理済みを記載しないようにプログラムを記載
50
52
 
51
53
  しましたが何故か全てのデータに処理済みと記載されます。
52
54
 
@@ -56,9 +58,209 @@
56
58
 
57
59
 
58
60
 
61
+ try:#タイトルを取得
62
+
63
+ message = driver.find_element_by_xpath('//*[@id="cat-pass"]').text
64
+
65
+ print(message)
66
+
67
+ #Print結果:路線情報トップ > ルート、運賃検索結果
68
+
69
+ except:
70
+
71
+ print("error")
72
+
73
+
74
+
75
+ if "路線情報トップ > ルート、運賃検索結果"== message:
76
+
77
+
78
+
79
+ # 処理済みのでデータをD列へ入力
80
+
81
+ df.loc[i,'フラグ']='処理済み'
82
+
83
+ print("処理済み・書込み")
84
+
85
+
86
+
87
+ #EXCEL保存
88
+
89
+ df.to_excel("test.xlsx", header=False, index=False)
90
+
91
+
92
+
93
+ else:
94
+
95
+ print("エクセルへフラグ記載しない")
96
+
97
+
98
+
99
+
100
+
101
+ Excelデータ(現在の結果)
102
+
103
+
104
+
105
+ |No | 駅 | 駅2 |フラグ|
106
+
107
+ |-----:|:---------|:---------------|---------------|
108
+
109
+ |1 | 東京 |品川|処理済み|
110
+
111
+ |2 | 原宿 | 原宿 |処理済み|
112
+
113
+ |3 | 日暮里 | 秋葉原|処理済み|
114
+
115
+ |4 | 東京 | 原宿|処理済み|
116
+
117
+ |5 | 池袋 | @@@ |処理済み
118
+
119
+
120
+
121
+
122
+
123
+
124
+
59
125
  ```
60
126
 
127
+
128
+
129
+
130
+
131
+ ```
132
+
133
+ # Excel用ライブラリ読込
134
+
135
+ import openpyxl
136
+
137
+ from selenium.webdriver.common.keys import Keys
138
+
139
+ import time
140
+
141
+ from selenium.webdriver.chrome.options import Options
142
+
143
+ from selenium.webdriver.support.select import Select
144
+
145
+ from selenium import webdriver
146
+
147
+ from selenium.common.exceptions import NoSuchElementException
148
+
149
+ import pyautogui
150
+
151
+ import pandas as pd
152
+
153
+
154
+
155
+
156
+
157
+ # Excelファイルを開く
158
+
159
+ v_wb = openpyxl.load_workbook("test.xlsx")
160
+
161
+
162
+
163
+ # アクティブなシートを変数へ
164
+
165
+ v_ws = v_wb.active
166
+
167
+ # シートのロード
168
+
169
+ ws = v_wb.worksheets[0]
170
+
171
+
172
+
173
+ # convert to pandas dataframe
174
+
175
+ df = pd.DataFrame(ws.values)
176
+
177
+ print("test")
178
+
179
+ print(df)
180
+
181
+
182
+
183
+
184
+
185
+ # generate search words
186
+
187
+ # sort=False データソートせずにエクセル順番で行う
188
+
189
+ lst = df.iloc[0:,1:].values
190
+
191
+ print(lst)
192
+
193
+ df['フラグ'] = ''
194
+
195
+
196
+
197
+ URL = "https://transit.yahoo.co.jp/"
198
+
199
+
200
+
201
+ # ブラウザを開く。 #options=option background
202
+
203
+ options = Options()
204
+
205
+ options.add_experimental_option('detach', True)
206
+
207
+ driver = webdriver.Chrome(executable_path="C:\Program Files\chromedriver_win32\chromedriver.exe", options=options)
208
+
209
+
210
+
211
+ #ループ処理の部分とエクセルへの書き込み処理(行)が合っていないので、
212
+
213
+ #row = 1を追加
214
+
215
+
216
+
217
+ for i, query in enumerate(lst):
218
+
219
+ # Googleの検索TOP画面を開く。
220
+
221
+ if i > 0:
222
+
223
+ driver.execute_script('window.open()')
224
+
225
+ driver.switch_to.window(driver.window_handles[i])
226
+
227
+ driver.get(URL)
228
+
229
+
230
+
231
+ # 2秒待機
232
+
233
+ time.sleep(2)
234
+
235
+
236
+
237
+ # from
238
+
239
+ fromid = driver.find_element_by_name("from")
240
+
241
+ fromid.send_keys(query[0])
242
+
243
+
244
+
245
+ # to
246
+
247
+ to = driver.find_element_by_name("to")
248
+
249
+ to.send_keys(query[1])
250
+
251
+
252
+
253
+ #search
254
+
255
+ time.sleep(2)
256
+
257
+ pyautogui.press(['enter'])
258
+
259
+
260
+
261
+
262
+
61
- try:#タイトルを取得
263
+ try:#タイトルを取得
62
264
 
63
265
  message = driver.find_element_by_xpath('//*[@id="cat-pass"]').text
64
266
 
@@ -94,210 +296,6 @@
94
296
 
95
297
  print("エクセルへフラグ記載しない")
96
298
 
299
+
300
+
97
301
  ```
98
-
99
-
100
-
101
-
102
-
103
- Excelデータ(現在の結果)
104
-
105
-
106
-
107
- |No | 駅 | 駅2 |フラグ|
108
-
109
- |-----:|:---------|:---------------|---------------|
110
-
111
- |1 | 東京 |品川|処理済み|
112
-
113
- |2 | 原宿 | 原宿 |処理済み|
114
-
115
- |3 | 日暮里 | 秋葉原|処理済み|
116
-
117
- |4 | 東京 | 原宿|処理済み|
118
-
119
- |5 | 池袋 | @@@ |処理済み
120
-
121
-
122
-
123
-
124
-
125
-
126
-
127
- ```
128
-
129
-
130
-
131
-
132
-
133
- ```
134
-
135
- # Excel用ライブラリ読込
136
-
137
- import openpyxl
138
-
139
- from selenium.webdriver.common.keys import Keys
140
-
141
- import time
142
-
143
- from selenium.webdriver.chrome.options import Options
144
-
145
- from selenium.webdriver.support.select import Select
146
-
147
- from selenium import webdriver
148
-
149
- from selenium.common.exceptions import NoSuchElementException
150
-
151
- import pyautogui
152
-
153
- import pandas as pd
154
-
155
-
156
-
157
-
158
-
159
- # Excelファイルを開く
160
-
161
- v_wb = openpyxl.load_workbook("test.xlsx")
162
-
163
-
164
-
165
- # アクティブなシートを変数へ
166
-
167
- v_ws = v_wb.active
168
-
169
- # シートのロード
170
-
171
- ws = v_wb.worksheets[0]
172
-
173
-
174
-
175
- # convert to pandas dataframe
176
-
177
- df = pd.DataFrame(ws.values)
178
-
179
- print("test")
180
-
181
- print(df)
182
-
183
-
184
-
185
-
186
-
187
- # generate search words
188
-
189
- # sort=False データソートせずにエクセル順番で行う
190
-
191
- lst = df.iloc[0:,1:].values
192
-
193
- print(lst)
194
-
195
- df['フラグ'] = ''
196
-
197
-
198
-
199
- URL = "https://transit.yahoo.co.jp/"
200
-
201
-
202
-
203
- # ブラウザを開く。 #options=option background
204
-
205
- options = Options()
206
-
207
- options.add_experimental_option('detach', True)
208
-
209
- driver = webdriver.Chrome(executable_path="C:\Program Files\chromedriver_win32\chromedriver.exe", options=options)
210
-
211
-
212
-
213
- #ループ処理の部分とエクセルへの書き込み処理(行)が合っていないので、
214
-
215
- #row = 1を追加
216
-
217
-
218
-
219
- for i, query in enumerate(lst):
220
-
221
- # Googleの検索TOP画面を開く。
222
-
223
- if i > 0:
224
-
225
- driver.execute_script('window.open()')
226
-
227
- driver.switch_to.window(driver.window_handles[i])
228
-
229
- driver.get(URL)
230
-
231
-
232
-
233
- # 2秒待機
234
-
235
- time.sleep(2)
236
-
237
-
238
-
239
- # from
240
-
241
- fromid = driver.find_element_by_name("from")
242
-
243
- fromid.send_keys(query[0])
244
-
245
-
246
-
247
- # to
248
-
249
- to = driver.find_element_by_name("to")
250
-
251
- to.send_keys(query[1])
252
-
253
-
254
-
255
- #search
256
-
257
- time.sleep(2)
258
-
259
- pyautogui.press(['enter'])
260
-
261
-
262
-
263
-
264
-
265
- try:#タイトルを取得
266
-
267
- message = driver.find_element_by_xpath('//*[@id="cat-pass"]').text
268
-
269
- print(message)
270
-
271
- #Print結果:路線情報トップ > ルート、運賃検索結果
272
-
273
- except:
274
-
275
- print("error")
276
-
277
-
278
-
279
- if "路線情報トップ > ルート、運賃検索結果"== message:
280
-
281
-
282
-
283
- # 処理済みのでデータをD列へ入力
284
-
285
- df.loc[i,'フラグ']='処理済み'
286
-
287
- print("処理済み・書込み")
288
-
289
-
290
-
291
- #EXCEL保存
292
-
293
- df.to_excel("test.xlsx", header=False, index=False)
294
-
295
-
296
-
297
- else:
298
-
299
- print("エクセルへフラグ記載しない")
300
-
301
-
302
-
303
- ```

5

質問内容を分かりやすくにしました。

2021/09/24 08:18

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -4,15 +4,13 @@
4
4
 
5
5
  各駅を検索したらExcelのD列に処理済みの結果を記載しています。
6
6
 
7
- ただ同じ駅だったら駅ない時に乗換案内で下記のエラーメッセージが表示されます。
7
+ WEB上検索できない場合、
8
-
9
- ```
8
+
10
-
11
- selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tabflt"]/li[3]/a"}
12
-
13
- ```
14
-
15
- エラーが表示されたらループを抜けて、次のループに(日暮里)進みたいです。
9
+ エラーが表示されたらループを抜けて、次のループに(日暮里)進み
10
+
11
+ 下記のようにフラグに処理済みのデータを記載したいです。
12
+
13
+ エラーした場合処理済みのフラグを記載しないようにしたいです。
16
14
 
17
15
 
18
16
 
@@ -38,336 +36,268 @@
38
36
 
39
37
 
40
38
 
41
- ```
42
-
43
- # #warring
44
-
45
- # warring = driver.find_element_by_xpath('//*[@id="error-text"]/p').text
46
-
47
- # print(warring)
48
-
49
- # #[warning]出発地と目的地が同じ地点です。
50
-
51
-
52
-
53
- エラー内容:出発地と目的地が同じ地点です。
54
-
55
-
56
-
57
- selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tabflt"]/li[3]/a"}
58
-
59
- ```
60
-
61
-
62
-
63
- ```
64
-
65
- tryでWEB側でエラーを検知してコードに入れてみましたが、実現したい処理と上手く処理できず、
39
+ ```try```でWEB側でエラーを検知して下記のコードに入れてみましたが、
40
+
66
-
41
+ 実現したい処理と上手く処理できず、
42
+
67
- 処理済みと記載されないです。
43
+ 全てのデータに処理済みと記載されす。
44
+
68
-
45
+ ```if```には検索後にタイトルを取得すれば処理済みのフラグを記載するように組みました。
46
+
47
+
48
+
69
- eleseのようにエラーしていない箇所に処理済みを記載しです。
49
+ ```elese```のようにエラーしたら処理済みを記載しようにプログラムを記載
50
+
51
+ しましたが何故か全てのデータに処理済みと記載されます。
52
+
53
+
70
54
 
71
55
  ご指導をお願いできますでしょうか。
72
56
 
73
- ```
74
-
75
-
76
-
77
- ```
78
-
79
- try:
80
-
81
- #エラー発生に対応したい処理
82
-
83
- cheap = driver.find_element_by_xpath('//*[@id="tabflt"]/li[3]/a').text
84
-
85
- print(cheap)
86
-
87
- #[安]料金の安い順
88
-
89
- except:
90
-
91
- print("エラが発生した時の処理/無しもしない")
92
-
93
- else:
94
-
95
- #エラーが発生しない時の処理/処理済みのデータD列へ入力
57
+
58
+
59
+ ```
60
+
61
+ try:#タイトルを取得
62
+
63
+ message = driver.find_element_by_xpath('//*[@id="cat-pass"]').text
64
+
65
+ print(message)
66
+
67
+ #Print結果:路線情報トップ > ルート、運賃検索結果
68
+
69
+ except:
70
+
71
+ print("error")
72
+
73
+
74
+
75
+ if "路線情報トップ > ルト、運賃検索結果"== message:
76
+
77
+
78
+
79
+ # 処理済みのデータD列へ入力
80
+
81
+ df.loc[i,'フラグ']='処理済み'
82
+
83
+ print("処理済み・書込み")
84
+
85
+
86
+
87
+ #EXCEL保存
88
+
89
+ df.to_excel("test.xlsx", header=False, index=False)
90
+
91
+
92
+
93
+ else:
94
+
95
+ print("エクセルへフラグ記載しない")
96
+
97
+ ```
98
+
99
+
100
+
101
+
102
+
103
+ Excelデータ(現在の結果)
104
+
105
+
106
+
107
+ |No | 駅 | 駅2 |フラグ|
108
+
109
+ |-----:|:---------|:---------------|---------------|
110
+
111
+ |1 | 東京 |品川|処理済み|
112
+
113
+ |2 | 原宿 | 原宿 |処理済み|
114
+
115
+ |3 | 日暮里 | 秋葉原|処理済み|
116
+
117
+ |4 | 東京 | 原宿|処理済み|
118
+
119
+ |5 | 池袋 | @@@ |処理済み
120
+
121
+
122
+
123
+
124
+
125
+
126
+
127
+ ```
128
+
129
+
130
+
131
+
132
+
133
+ ```
134
+
135
+ # Excel用ライブラリ読込
136
+
137
+ import openpyxl
138
+
139
+ from selenium.webdriver.common.keys import Keys
140
+
141
+ import time
142
+
143
+ from selenium.webdriver.chrome.options import Options
144
+
145
+ from selenium.webdriver.support.select import Select
146
+
147
+ from selenium import webdriver
148
+
149
+ from selenium.common.exceptions import NoSuchElementException
150
+
151
+ import pyautogui
152
+
153
+ import pandas as pd
154
+
155
+
156
+
157
+
158
+
159
+ # Excelファイルを開く
160
+
161
+ v_wb = openpyxl.load_workbook("test.xlsx")
162
+
163
+
164
+
165
+ # アクティブなシートを変数へ
166
+
167
+ v_ws = v_wb.active
168
+
169
+ # シートのロード
170
+
171
+ ws = v_wb.worksheets[0]
172
+
173
+
174
+
175
+ # convert to pandas dataframe
176
+
177
+ df = pd.DataFrame(ws.values)
178
+
179
+ print("test")
180
+
181
+ print(df)
182
+
183
+
184
+
185
+
186
+
187
+ # generate search words
188
+
189
+ # sort=False データソートせずにエクセル順番で行う
190
+
191
+ lst = df.iloc[0:,1:].values
192
+
193
+ print(lst)
194
+
195
+ df['フラグ'] = ''
196
+
197
+
198
+
199
+ URL = "https://transit.yahoo.co.jp/"
200
+
201
+
202
+
203
+ # ブラウザを開く。 #options=option background
204
+
205
+ options = Options()
206
+
207
+ options.add_experimental_option('detach', True)
208
+
209
+ driver = webdriver.Chrome(executable_path="C:\Program Files\chromedriver_win32\chromedriver.exe", options=options)
210
+
211
+
212
+
213
+ #ループ処理の部分とエクセルへの書き込み処理(行)が合っていないので、
214
+
215
+ #row = 1を追加
216
+
217
+
218
+
219
+ for i, query in enumerate(lst):
220
+
221
+ # Googleの検索TOP画面を開く。
222
+
223
+ if i > 0:
224
+
225
+ driver.execute_script('window.open()')
226
+
227
+ driver.switch_to.window(driver.window_handles[i])
228
+
229
+ driver.get(URL)
230
+
231
+
232
+
233
+ # 2秒待機
96
234
 
97
235
  time.sleep(2)
98
236
 
99
- # 処理済みのでデータをD列へ入力
100
-
101
- df.loc[(df[1] == query[0]), 'フラグ'] = "処理済み"
102
-
103
-
104
-
105
- #EXCEL保存
106
-
107
- df.to_excel("test.xlsx", header=False, index=False)
108
-
109
-
110
-
111
- ```
112
-
113
-
114
-
115
-
116
-
117
- Excelデータ(現在の結果)
118
-
119
-
120
-
121
- |No | 駅 | 駅2 |フラグ|
122
-
123
- |-----:|:---------|:---------------|---------------|
124
-
125
- |1 | 東京 |品川||
126
-
127
- |2 | 原宿 | 原宿 ||
128
-
129
- |3 | 日暮里 | 秋葉原||
130
-
131
- |4 | 東京 | 原宿||
132
-
133
- |5 | 池袋 | @@@ |
134
-
135
-
136
-
137
-
138
-
139
- code
140
-
141
- ```
142
-
143
- # Excel用ライブラリ読込
144
-
145
- import openpyxl
146
-
147
- from selenium.webdriver.common.keys import Keys
148
-
149
- import time
150
-
151
- from selenium.webdriver.chrome.options import Options
152
-
153
- from selenium.webdriver.support.select import Select
154
-
155
- from selenium import webdriver
156
-
157
- import pyautogui
158
-
159
- import pandas as pd
160
-
161
-
162
-
163
-
164
-
165
- # Excelファイルを開く
166
-
167
- v_wb = openpyxl.load_workbook("test.xlsx")
168
-
169
-
170
-
171
- # アクティブなシートを変数へ
172
-
173
- v_ws = v_wb.active
174
-
175
- # シートのロード
176
-
177
- ws = v_wb.worksheets[0]
178
-
179
-
180
-
181
- # convert to pandas dataframe
182
-
183
- df = pd.DataFrame(ws.values)
184
-
185
- print("test")
186
-
187
- print(df)
188
-
189
-
190
-
191
-
192
-
193
- # generate search words
194
-
195
- # sort=False データソートせずにエクセル順番で行う
196
-
197
- lst = df.iloc[0:,1:].values
198
-
199
- print(lst)
200
-
201
- df['フラグ'] = ''
202
-
203
-
204
-
205
- URL = "https://transit.yahoo.co.jp/"
206
-
207
-
208
-
209
- # ブラウザを開く。 #options=option background
210
-
211
- options = Options()
212
-
213
- options.add_experimental_option('detach', True)
214
-
215
- driver = webdriver.Chrome(executable_path="C:\Program Files\chromedriver_win32\chromedriver.exe", options=options)
216
-
217
-
218
-
219
- #ループ処理の部分とエクセルへの書き込み処理(行)が合っていないので、
220
-
221
- #row = 1を追加
222
-
223
-
224
-
225
- row = 1
226
-
227
-
228
-
229
- for i, query in enumerate(lst):
230
-
231
- # Googleの検索TOP画面を開く。
232
-
233
- if i > 0:
234
-
235
- driver.execute_script('window.open()')
236
-
237
- driver.switch_to.window(driver.window_handles[i])
238
-
239
- driver.get(URL)
240
-
241
-
242
-
243
- # 2秒待機
237
+
238
+
239
+ # from
240
+
241
+ fromid = driver.find_element_by_name("from")
242
+
243
+ fromid.send_keys(query[0])
244
+
245
+
246
+
247
+ # to
248
+
249
+ to = driver.find_element_by_name("to")
250
+
251
+ to.send_keys(query[1])
252
+
253
+
254
+
255
+ #search
244
256
 
245
257
  time.sleep(2)
246
258
 
247
-
248
-
249
- # from
250
-
251
- fromid = driver.find_element_by_name("from")
252
-
253
- fromid.send_keys(query[0])
254
-
255
-
256
-
257
- # to
258
-
259
- to = driver.find_element_by_name("to")
260
-
261
- to.send_keys(query[1])
262
-
263
-
264
-
265
- #search
266
-
267
- time.sleep(2)
268
-
269
259
  pyautogui.press(['enter'])
270
260
 
271
261
 
272
262
 
273
- # #warring
274
-
275
- # warring = driver.find_element_by_xpath('//*[@id="error-text"]/p').text
276
-
277
- # print(warring)
278
-
279
- # #[warning]出発地と目的地が同じ地点です。
280
-
281
- try:
282
-
283
- #エラー発生に対応したい処理
284
-
285
- cheap = driver.find_element_by_xpath('//*[@id="tabflt"]/li[3]/a').text
286
-
287
- print(cheap)
288
-
289
- #[安]料金の安い順
290
-
291
- except:
292
-
293
- print("エラーが発生した時の処理/無しもしない")
294
-
295
- else:
296
-
297
- #エラーが発生しない時の処理/処理済みのデータD列へ入力
298
-
299
- time.sleep(2)
300
-
301
- # 処理済みのでデータをD列へ入力
302
-
303
- df.loc[(df[1] == query[0]), 'フラグ'] = "処理済み"
304
-
305
-
306
-
307
- #EXCEL保存
308
-
309
- df.to_excel("test.xlsx", header=False, index=False)
310
-
311
-
312
-
313
-
314
-
315
- ```
316
-
317
-
318
-
319
- 処理はtryの中に全てを入れたところエラーした箇所に処理済みのフラグが記載されます。
320
-
321
-
322
-
323
- ```
324
-
325
- try:
326
-
327
- #エラー発生に対応したい処理
328
-
329
- cheap = driver.find_element_by_xpath('//*[@id="tabflt"]/li[3]/a').text
330
-
331
- print(cheap)
332
-
333
- #[安]料金の安い順
334
-
335
- print("エラーが発生した時の処理/無しもしない")
336
-
337
- #エラーが発生しない時の処理/処理済みのデータD列へ入力
338
-
339
- except:
340
-
341
- print("test")
342
-
343
-
344
-
345
- time.sleep(2)
346
-
347
- # 処理済みのでデータをD列へ入力
348
-
349
- df.loc[(df[1] == query[0]), 'フラグ'] = "処理済み"
350
-
351
-
352
-
353
- #EXCEL保存
354
-
355
- df.to_excel("test.xlsx", header=False, index=False)
356
-
357
- ```
358
-
359
-
360
-
361
- |No | 駅 | 駅2 |フラグ|
362
-
363
- |-----:|:---------|:---------------|---------------|
364
-
365
- |1 | 東京 |品川||
366
-
367
- |2 | 原宿 | 原宿 |処理済み|
368
-
369
- |3 | 日暮里 | 秋葉原||
370
-
371
- |4 | 東京 | 原宿|
372
-
373
- |5 | 池袋 | @@@ |処理済み|
263
+
264
+
265
+ try:#タイトルを取得
266
+
267
+ message = driver.find_element_by_xpath('//*[@id="cat-pass"]').text
268
+
269
+ print(message)
270
+
271
+ #Print結果:路線情報トップ > ルート、運賃検索結果
272
+
273
+ except:
274
+
275
+ print("error")
276
+
277
+
278
+
279
+ if "路線情報トップ > ルート、運賃検索結果"== message:
280
+
281
+
282
+
283
+ # 処理済みのでデータをD列へ入力
284
+
285
+ df.loc[i,'フラグ']='処理済み'
286
+
287
+ print("処理済み・書込み")
288
+
289
+
290
+
291
+ #EXCEL保存
292
+
293
+ df.to_excel("test.xlsx", header=False, index=False)
294
+
295
+
296
+
297
+ else:
298
+
299
+ print("エクセルへフラグ記載しない")
300
+
301
+
302
+
303
+ ```

4

エラー内容記載

2021/09/24 08:11

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ```
10
10
 
11
- nosuchelementexception
11
+ selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tabflt"]/li[3]/a"}
12
12
 
13
13
  ```
14
14
 
@@ -54,9 +54,7 @@
54
54
 
55
55
 
56
56
 
57
- except nosuchelementexception:
58
-
59
- NameError: name 'nosuchelementexception' is not defined
57
+ selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="tabflt"]/li[3]/a"}
60
58
 
61
59
  ```
62
60
 

3

内容をもう少し分かりやすくにしました。

2021/09/22 02:41

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -62,19 +62,21 @@
62
62
 
63
63
 
64
64
 
65
+ ```
66
+
65
- ```try```でWEB側でエラーを検知してコードに入れてみましたが、実現したい処理と上手く処理できず、
67
+ tryでWEB側でエラーを検知してコードに入れてみましたが、実現したい処理と上手く処理できず、
66
68
 
67
69
  処理済みと記載されないです。
68
70
 
69
- ```elese```のようにエラーしていない箇所に処理済みを記載したいです。
71
+ eleseのようにエラーしていない箇所に処理済みを記載したいです。
70
72
 
71
73
  ご指導をお願いできますでしょうか。
72
74
 
73
-
74
-
75
- ```
75
+ ```
76
+
77
+
78
+
76
-
79
+ ```
77
-
78
80
 
79
81
  try:
80
82
 

2

nosuchelementexceptionの記述

2021/09/22 02:40

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -4,11 +4,15 @@
4
4
 
5
5
  各駅を検索したらExcelのD列に処理済みの結果を記載しています。
6
6
 
7
- ただ同じ駅だったら乗換案内で下記のエラーメッセージが表示されます。
7
+ ただ同じ駅だったら駅ではない時に乗換案内で下記のエラーメッセージが表示されます。
8
+
8
-
9
+ ```
10
+
9
-
11
+ nosuchelementexception
12
+
10
-
13
+ ```
14
+
11
- エラーが表示されたらループを抜けて、次のループに(日暮里)進みたいです。
15
+ エラーが表示されたらループを抜けて、次のループに(日暮里)進みたいです。
12
16
 
13
17
 
14
18
 
@@ -48,21 +52,11 @@
48
52
 
49
53
  エラー内容:出発地と目的地が同じ地点です。
50
54
 
51
- ```
55
+
52
-
53
-
54
-
56
+
55
- また駅以外に5行目のように```池袋``````@@@```
57
+ except nosuchelementexception:
56
-
57
- 検索すると下記のエラーが表示されます。
58
+
58
-
59
-
60
-
61
- ```
62
-
63
- [warning]「@@@」に該当する目的地はありませんでした。
59
+ NameError: name 'nosuchelementexception' is not defined
64
-
65
-
66
60
 
67
61
  ```
68
62
 

1

処理はtryの中に全てを入れたところエラーした箇所に処理済みのフラグが記載されます。

2021/09/22 02:37

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -319,3 +319,61 @@
319
319
 
320
320
 
321
321
  ```
322
+
323
+
324
+
325
+ 処理はtryの中に全てを入れたところエラーした箇所に処理済みのフラグが記載されます。
326
+
327
+
328
+
329
+ ```
330
+
331
+ try:
332
+
333
+ #エラー発生に対応したい処理
334
+
335
+ cheap = driver.find_element_by_xpath('//*[@id="tabflt"]/li[3]/a').text
336
+
337
+ print(cheap)
338
+
339
+ #[安]料金の安い順
340
+
341
+ print("エラーが発生した時の処理/無しもしない")
342
+
343
+ #エラーが発生しない時の処理/処理済みのデータD列へ入力
344
+
345
+ except:
346
+
347
+ print("test")
348
+
349
+
350
+
351
+ time.sleep(2)
352
+
353
+ # 処理済みのでデータをD列へ入力
354
+
355
+ df.loc[(df[1] == query[0]), 'フラグ'] = "処理済み"
356
+
357
+
358
+
359
+ #EXCEL保存
360
+
361
+ df.to_excel("test.xlsx", header=False, index=False)
362
+
363
+ ```
364
+
365
+
366
+
367
+ |No | 駅 | 駅2 |フラグ|
368
+
369
+ |-----:|:---------|:---------------|---------------|
370
+
371
+ |1 | 東京 |品川||
372
+
373
+ |2 | 原宿 | 原宿 |処理済み|
374
+
375
+ |3 | 日暮里 | 秋葉原||
376
+
377
+ |4 | 東京 | 原宿|
378
+
379
+ |5 | 池袋 | @@@ |処理済み|