質問編集履歴
2
コードの修正をしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -62,9 +62,13 @@
|
|
62
62
|
|
63
63
|
|
64
64
|
|
65
|
-
|
65
|
+
#遷移したページのURLを取得
|
66
|
+
|
67
|
+
url_2 = driver.current_url
|
66
68
|
|
67
69
|
|
70
|
+
|
71
|
+
#新たな30このデータを取得
|
68
72
|
|
69
73
|
url_2 = pd.read_html(url_2, header=0)
|
70
74
|
|
@@ -73,6 +77,8 @@
|
|
73
77
|
```
|
74
78
|
|
75
79
|
|
80
|
+
|
81
|
+
※実際にはfor文によるループですべてのデータを取得しますが、上記は次のページの分までのみ記載しています。
|
76
82
|
|
77
83
|
df_2は次のページの30個のデータとなっているべきですが、最初のページの30個のデータのままになってしまっています。
|
78
84
|
|
1
コードを掲載しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,3 +9,81 @@
|
|
9
9
|
|
10
10
|
|
11
11
|
1ページにつき、30個のデータが表示されるのですが、URLの次のページに遷移した後、そのページの新たな30個のデータを取得しようとすると、一番最初のページのデータが取得されてしまいます。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
以下のコードでスクレイピングを行っています。
|
16
|
+
|
17
|
+
```ここに言語を入力
|
18
|
+
|
19
|
+
import pandas as pd
|
20
|
+
|
21
|
+
from selenium import webdriver
|
22
|
+
|
23
|
+
from selenium.webdriver.common.keys import Keys
|
24
|
+
|
25
|
+
from selenium.webdriver.support.ui import Select
|
26
|
+
|
27
|
+
import time
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
driver = webdriver.Chrome('./chromedriver.exe')
|
32
|
+
|
33
|
+
#URLを開く
|
34
|
+
|
35
|
+
driver.get("https://nucleus.iaea.org/sites/accelerators/Lists/Cyclotron%20Master%20List/cyclotrons_view_2020.aspx")
|
36
|
+
|
37
|
+
time.sleep(3)
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
#開いているページのURLを取得
|
42
|
+
|
43
|
+
url = driver.current_url
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
#URL内の表を取得
|
48
|
+
|
49
|
+
data = pd.read_html(url, header=0)
|
50
|
+
|
51
|
+
df = data[1]
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
#seleniumによって、次の30個のデータに遷移
|
56
|
+
|
57
|
+
next_page = driver.find_element_by_id("pagingWPQ2next")
|
58
|
+
|
59
|
+
next_page.click()
|
60
|
+
|
61
|
+
time.sleep(3)
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
url_2 = "https://nucleus.iaea.org/sites/accelerators/Lists/Cyclotron%20Master%20List/cyclotrons_view_2020.aspx#InplviewHashb4c61c57-92e3-4919-885c-7bc3bba78de7=Paged%3DTRUE-p_ID%3D31-PageFirstRow%3D31"
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
url_2 = pd.read_html(url_2, header=0)
|
70
|
+
|
71
|
+
df_2 = data_2[1]
|
72
|
+
|
73
|
+
```
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
df_2は次のページの30個のデータとなっているべきですが、最初のページの30個のデータのままになってしまっています。
|
78
|
+
|
79
|
+
自分なりに調べてみましたが、躓いてしまっています。
|
80
|
+
|
81
|
+
サイトがaspxであることが原因かなとなんとなく推測しているのですが、確証がありません。
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
例示したコードの方法にこだわっているわけではありませんので、他に効果的な方法等ありましたら、ご教示いただけますと幸いです。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
何卒よろしくお願いいたします。
|