使用Selenium开发Instagram点赞机器人 如何精确定位点赞按钮
优化后的点赞按钮定位方案
你可以利用Instagram点赞按钮的固定特征写短路径相对XPath,稳定性和简洁度和你登录按钮的定位写法一致:
最优稳定写法(利用无障碍标签,几乎不会随前端迭代失效)
中文界面Instagram使用:
self.driver.find_element_by_xpath('//button[.//*[@aria-label="赞"]]').click() sleep(3)
英文界面Instagram将属性值改为Like即可:
self.driver.find_element_by_xpath('//button[.//*[@aria-label="Like"]]').click() sleep(3)
无语言适配写法(利用帖子结构固定特征)
所有帖子的互动区第一个按钮固定为点赞按钮,不需要区分界面语言:
self.driver.find_element_by_xpath('//article//section[1]/span[1]/button').click() sleep(3)
批量点赞前6条的简化写法
如果要一次性处理前6张照片,可以直接批量抓取所有点赞按钮再取前6个循环操作,不需要单独定位每一个:
# 抓取当前页面所有帖子的点赞按钮 like_buttons = self.driver.find_elements_by_xpath('//article//section[1]/span[1]/button') # 取前6个依次点赞 for btn in like_buttons[:6]: btn.click() sleep(3)
注意事项
你原来使用的从react-root开始的全绝对路径XPath稳定性极低,只要Instagram前端调整任意一层节点的顺序/层级就会失效,优先用相对路径+属性/固定结构定位的思路,和你用type="submit"定位登录按钮的逻辑完全一致。
内容的提问来源于stack exchange,提问作者RGB Engineer
相关产品推荐
相关产品推荐

