selenium实现微博批量自动取关

著作权归作者所有。
来源:公众号:Romi的杂货铺

之前偶然登陆微博发现微博里有60多个关注的对象,然而都不是自己关注的人(万恶的微博 🤔),然后又没有发现全选 取关的按钮,于是做了个自动帮助我们取关的脚本,顺便练习一下selenium库的使用~
废话不多说,上代码~

from selenium import webdriver
import time
from selenium.webdriver import ActionChains

browser = webdriver.Chrome()
#登陆
browser.get('http://weibo.com/login.php')
#//*[@style]   查找所有包含style的所有元素,所有的属性要加@
browser.find_element_by_xpath('//*[@id="loginname"]').clear()
#输入登录账号
browser.find_element_by_xpath('//*[@id="loginname"]').send_keys('Your ID')
browser.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input').clear()
time.sleep(1)
#输入登陆密码
browser.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[2]/div/input').send_keys('your password')
time.sleep(1)
browser.find_element_by_xpath('//*[@id="pl_login_form"]/div/div[3]/div[6]/a').click()
time.sleep(1)
browser.find_element_by_xpath('//*[@id="v6_pl_rightmod_myinfo"]/div/div/div[2]/ul/li[1]/a/strong').click()
time.sleep(1)
#browser.find_element_by_link_text("设置")    通过文本定位元素

#取关数量
for cou in range(1,10):
    #定位悬停时的元素
   ActionChains(browser).move_to_element(browser.find_element_by_xpath('//*[@id="Pl_Official_RelationMyfollow__95"]/div/div/div/div[3]/ul/li[1]/div[1]/div[2]/div[5]/p/a[3]/em')).perform()
   time.sleep(2)
   browser.find_element_by_link_text("取消关注").click()
   time.sleep(1)
   #browser.find_element_by_xpath('//*[@id="layer_15660574768511"]/div[2]/div[4]/a[1]').click()
   browser.find_element_by_link_text("确定").click()
browser.quit()

整个流程中的问题主要有两个:

1.有一个鼠标悬停时才显示的取消关注界面,使用ActionChains(browser).move_to_element().perform()方法解决

2.最后还有一个确定窗口跳出来,之前以为是弹窗,但是后来发现其实并不是,直接定位元素就可以了

个人公众号:Smilecoc的杂货铺,欢迎关注!
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值