質問編集履歴
2
コードの修正をしました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -30,12 +30,15 @@
|
|
30
30
|
next_page.click()
|
31
31
|
time.sleep(3)
|
32
32
|
|
33
|
-
|
33
|
+
#遷移したページのURLを取得
|
34
|
+
url_2 = driver.current_url
|
34
35
|
|
36
|
+
#新たな30このデータを取得
|
35
37
|
url_2 = pd.read_html(url_2, header=0)
|
36
38
|
df_2 = data_2[1]
|
37
39
|
```
|
38
40
|
|
41
|
+
※実際にはfor文によるループですべてのデータを取得しますが、上記は次のページの分までのみ記載しています。
|
39
42
|
df_2は次のページの30個のデータとなっているべきですが、最初のページの30個のデータのままになってしまっています。
|
40
43
|
自分なりに調べてみましたが、躓いてしまっています。
|
41
44
|
サイトがaspxであることが原因かなとなんとなく推測しているのですが、確証がありません。
|
1
コードを掲載しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,4 +3,43 @@
|
|
3
3
|
|
4
4
|
https://nucleus.iaea.org/sites/accelerators/Lists/Cyclotron%20Master%20List/cyclotrons_view_2020.aspx
|
5
5
|
|
6
|
-
1ページにつき、30個のデータが表示されるのですが、URLの次のページに遷移した後、そのページの新たな30個のデータを取得しようとすると、一番最初のページのデータが取得されてしまいます。
|
6
|
+
1ページにつき、30個のデータが表示されるのですが、URLの次のページに遷移した後、そのページの新たな30個のデータを取得しようとすると、一番最初のページのデータが取得されてしまいます。
|
7
|
+
|
8
|
+
以下のコードでスクレイピングを行っています。
|
9
|
+
```ここに言語を入力
|
10
|
+
import pandas as pd
|
11
|
+
from selenium import webdriver
|
12
|
+
from selenium.webdriver.common.keys import Keys
|
13
|
+
from selenium.webdriver.support.ui import Select
|
14
|
+
import time
|
15
|
+
|
16
|
+
driver = webdriver.Chrome('./chromedriver.exe')
|
17
|
+
#URLを開く
|
18
|
+
driver.get("https://nucleus.iaea.org/sites/accelerators/Lists/Cyclotron%20Master%20List/cyclotrons_view_2020.aspx")
|
19
|
+
time.sleep(3)
|
20
|
+
|
21
|
+
#開いているページのURLを取得
|
22
|
+
url = driver.current_url
|
23
|
+
|
24
|
+
#URL内の表を取得
|
25
|
+
data = pd.read_html(url, header=0)
|
26
|
+
df = data[1]
|
27
|
+
|
28
|
+
#seleniumによって、次の30個のデータに遷移
|
29
|
+
next_page = driver.find_element_by_id("pagingWPQ2next")
|
30
|
+
next_page.click()
|
31
|
+
time.sleep(3)
|
32
|
+
|
33
|
+
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"
|
34
|
+
|
35
|
+
url_2 = pd.read_html(url_2, header=0)
|
36
|
+
df_2 = data_2[1]
|
37
|
+
```
|
38
|
+
|
39
|
+
df_2は次のページの30個のデータとなっているべきですが、最初のページの30個のデータのままになってしまっています。
|
40
|
+
自分なりに調べてみましたが、躓いてしまっています。
|
41
|
+
サイトがaspxであることが原因かなとなんとなく推測しているのですが、確証がありません。
|
42
|
+
|
43
|
+
例示したコードの方法にこだわっているわけではありませんので、他に効果的な方法等ありましたら、ご教示いただけますと幸いです。
|
44
|
+
|
45
|
+
何卒よろしくお願いいたします。
|