質問編集履歴

1

質問内容変更しました。

2021/12/02 12:01

投稿

fideo
fideo

スコア55

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,8 @@
1
1
  「次へ」「次のページへ」 をPython,selenium,beutifulsoupで ユーザー名スクレイピングしたいです。
2
2
 
3
- 下記の方法で行いまたが、プから抜ないです。
3
+ 下記の方法で行いまたが、最初の1ペジだユーザー名スクレイピングされます。
4
4
 
5
- 最後ページに行きましたら、どのようにループから抜けいでしょうか。
5
+ 次のページ行ってもスクレイピングするどのようにすれよろしいでしょうか。
6
6
 
7
7
 
8
8
 
@@ -142,35 +142,39 @@
142
142
 
143
143
 
144
144
 
145
- #ユーザ取得
145
+ #ユーザ取得
146
146
 
147
- while True:
147
+ member=soup.find(class_="member-count ng-binding").get_text()
148
148
 
149
- users_names = [n.get_text() for n in soup.find_all(class_="fn-user ellip-1 ng-binding")]
150
-
151
- print(users_names)
149
+ print(member)
152
150
 
153
151
 
154
152
 
153
+ #ループのページ数取得
154
+
155
+ loop_num=math.ceil(int(member)/100)
155
156
 
156
157
 
157
- # 次へをクリックしページ遷移する
158
158
 
159
- try:
159
+ print(loop_num)
160
160
 
161
- next_button = driver.find_element_by_xpath('//*[@id="mainContainerWrapper"]/member-control/div/div/button[3]/i')
162
161
 
163
- next_button.click()
164
162
 
165
- time.sleep(2)
163
+ for i in range(1,loop_num):
166
164
 
167
- # 次のボタンがなければループから抜ける
165
+ #次のボタンクリック
168
166
 
169
- except Exception:
167
+ next_button = driver.find_element_by_xpath('//*[@id="mainContainerWrapper"]/member-control/div/div/button[3]').click()
170
168
 
171
- #browser.quit()
172
169
 
170
+
171
+ time.sleep(4)
172
+
173
+ #すべてのユーザーを取得
174
+
175
+ users_names = [i.get_text() for i in soup.find_all(class_="fn-user ellip-1 ng-binding")]
176
+
173
- break
177
+ print(users_names)
174
178
 
175
179
 
176
180