質問編集履歴
1
質問内容変更しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
「次へ」「次のページへ」 をPython,selenium,beutifulsoupで ユーザー名スクレイピングしたいです。
|
2
|
-
下記の方法で行いまたが、
|
2
|
+
下記の方法で行いまたが、最初の1ページだけユーザー名スクレイピングされます。
|
3
|
-
|
3
|
+
次のページ行ってもスクレイピングするにはどのようにすればよろしいでしょうか。
|
4
4
|
|
5
5
|
HTML 「次へ」のページ番号
|
6
6
|
1から4までの番号を指定しています。
|
@@ -70,22 +70,24 @@
|
|
70
70
|
soup = BeautifulSoup(html, 'html.parser')
|
71
71
|
|
72
72
|
|
73
|
-
#ユーザ
|
73
|
+
#ユーザ数取得
|
74
|
-
while True:
|
75
|
-
|
74
|
+
member=soup.find(class_="member-count ng-binding").get_text()
|
76
|
-
|
75
|
+
print(member)
|
77
76
|
|
77
|
+
#ループのページ数取得
|
78
|
+
loop_num=math.ceil(int(member)/100)
|
78
79
|
|
79
|
-
# 次へをクリックしページ遷移する
|
80
|
-
try:
|
81
|
-
next_button = driver.find_element_by_xpath('//*[@id="mainContainerWrapper"]/member-control/div/div/button[3]/i')
|
82
|
-
next_button.click()
|
83
|
-
|
80
|
+
print(loop_num)
|
84
|
-
# 次のボタンがなければループから抜ける
|
85
|
-
except Exception:
|
86
|
-
#browser.quit()
|
87
|
-
break
|
88
81
|
|
82
|
+
for i in range(1,loop_num):
|
83
|
+
#次のボタンクリック
|
84
|
+
next_button = driver.find_element_by_xpath('//*[@id="mainContainerWrapper"]/member-control/div/div/button[3]').click()
|
89
85
|
|
86
|
+
time.sleep(4)
|
87
|
+
#すべてのユーザーを取得
|
88
|
+
users_names = [i.get_text() for i in soup.find_all(class_="fn-user ellip-1 ng-binding")]
|
89
|
+
print(users_names)
|
90
90
|
|
91
|
+
|
92
|
+
|
91
93
|
```
|