Selenium实现Instagram自动评论机器人:跳过评论关闭帖子的代码修正
修正后的Instagram自动评论机器人代码
原代码的问题在于,你提前执行了cmt = driver.find_element(...)——当帖子关闭评论时,这一步会直接抛出NoSuchElementException,导致后续判断逻辑根本无法运行。正确的做法是把元素查找操作放到异常捕获块中,确保遇到无评论框的帖子时能平稳跳过。
以下是修正后的代码:
from selenium.common.exceptions import NoSuchElementException import random from time import sleep # 假设press是你定义的翻页函数,commentsDict是评论列表 try: # 尝试查找评论输入框 comment_box = driver.find_element(By.XPATH, '//*[@class="_aidk"]//textarea') # 找到则执行评论流程 comment_box.click() comment_box.send_keys(random.choice(commentsDict)) press('enter') sleep(3) # 执行点赞操作 like_btn = driver.find_element(By.XPATH, '//span[@class="_aamw"]/button/div[2]/span') like_btn.click() except NoSuchElementException: # 找不到评论框或点赞按钮时,跳过当前帖子 print('Skipped - comments disabled or element not found') finally: # 无论是否成功,都执行翻页操作,保证循环继续 press('Right') sleep(3)
关键改动说明:
- 移除冗余的
doesnt_exist函数,直接在主逻辑中用try-except捕获元素查找异常 - 将评论框查找、评论、点赞操作都放入
try块,任何一步找不到元素都会触发异常处理 - 使用
finally块确保无论操作成功与否,都会执行翻页,保证循环能继续运行 - 统一元素查找API(原代码混用
find_element和find_element_by_xpath,建议保持一致用find_element(By.XPATH, ...))
内容的提问来源于stack exchange,提问作者nitish verma
相关产品推荐
相关产品推荐

