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

回答編集履歴

3

追記と修正

2020/10/21 02:48

投稿

nto
nto

スコア1438

answer CHANGED
@@ -38,4 +38,19 @@
38
38
 
39
39
  ### 備考
40
40
  抽出しているlinkについてですが、各データに対し`class="-link"`が付与された要素が3つずつある様なので
41
- 抽出の仕方を変えるか、重複した場合の対処を行ったほうが良さそうです。
41
+ 抽出の仕方を変えるか、重複した場合の対処を行ったほうが良さそうです。
42
+
43
+ ### 追記
44
+ コードをよく見ていたら、ページ遷移の際の次ページがなかった場合の処理をわすれていた為
45
+ 関数内のnext_list部分を以下の様に変更してあげてください。
46
+ ```python
47
+ try:
48
+ next_list = driver.find_element_by_class_name('-next').click()
49
+ i += 1
50
+ time.sleep(3) # 3秒間待機
51
+ except:
52
+ break
53
+
54
+
55
+ return courses_list,facili_list, price_list,link_list # タイトルとリンクのリストを戻り値に指定
56
+ ```

2

修正

2020/10/21 02:48

投稿

nto
nto

スコア1438

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  間違いとまでは言いませんが`class_group`の定義の仕方が少しおかしいです。
2
- 掲題のコードではどうがんばっても要素は1つしかない為、elementsとする必要がないです。
2
+ どうがんばっても指定の要素は1つしかない為、elementsとする必要がないです。
3
3
  またそれが原因でページ内のデータも冒頭の1個しか取得出来ていない様です。
4
+ (リストになってしまっている為)
4
5
 
5
6
  この場合であれば`find_element_by_class_name('page-search__list')`と指定し
6
7
  もう少し細かく対象を絞った方が抽出も楽で、これでページ内の全ての情報が取得できます。

1

修正

2020/10/18 12:00

投稿

nto
nto

スコア1438

answer CHANGED
@@ -1,9 +1,11 @@
1
1
  間違いとまでは言いませんが`class_group`の定義の仕方が少しおかしいです。
2
2
  掲題のコードではどうがんばっても要素は1つしかない為、elementsとする必要がないです。
3
+ またそれが原因でページ内のデータも冒頭の1個しか取得出来ていない様です。
4
+
3
- またこの場合であれば`find_element_by_class_name('page-search__list')`と指定し
5
+ この場合であれば`find_element_by_class_name('page-search__list')`と指定し
4
6
  もう少し細かく対象を絞った方が抽出も楽で、これでページ内の全ての情報が取得できます。
5
7
 
6
- また次ページの抽出についても特に`class_group`から抽出する必要性は特になさそうでdriver変数から取ったほうが良さそうです。
8
+ ページ遷移の次ページの抽出についても特に`class_group`から抽出する必要性は特になさそうでdriver変数から取ったほうが良さそうです。
7
9
 
8
10
  ```python
9
11
  def search(driver):