如何实现循环逻辑:每添加20个用户标签后发送评论并续接列表
解决批量按组发送@用户评论的循环问题
你的核心问题是代码只处理了第一组20个用户,没有循环处理剩余列表内容。下面是修改后的实现思路和代码:
核心逻辑
通过起始索引递增的方式循环遍历列表,每次截取当前批次的20个用户,发送后更新起始位置,直到所有用户都被处理完毕。
修改后的代码示例
import time # 假设你的用户名列表已经定义好 usernames = ["user1", "user2", ...] # 替换为实际的用户名列表 batch_size = 20 start_index = 0 # 循环处理所有批次 while start_index < len(usernames): # 截取当前要发送的20个用户(最后一批可能不足20个) current_users = usernames[start_index:start_index + batch_size] # 拼接成带@的标签字符串(用空格分隔,适配大多数评论框格式) comment_content = ' '.join([f'@{user}' for user in current_users]) # 以下是你原有的操作逻辑,替换成实际的元素定位和操作 # 输入评论内容到框中 comment_box = driver.find_element(By.ID, "comment-input") # 替换为你的评论框定位方式 comment_box.clear() # 清空原有内容(可选) comment_box.send_keys(comment_content) # 点击发送按钮 send_button = driver.find_element(By.ID, "send-btn") # 替换为你的发送按钮定位方式 send_button.click() # 更新起始索引,处理下一批 start_index += batch_size # 等待页面响应,避免操作过于频繁导致异常 time.sleep(3)
关键改动说明
- 用
while循环替代单次截取:只要起始索引还没超出列表长度,就继续处理下一批 - 动态截取批次:
usernames[start_index:start_index + batch_size]会自动处理最后一批不足20个的情况 - 索引递增:每次发送后
start_index += batch_size,确保从下一个用户开始,而非从头遍历
内容的提问来源于stack exchange,提问作者Pekea
相关产品推荐
相关产品推荐

