功能组成
- 自动登陆
- 加关注
- 取消关注
- 写评论
- 发微博
开发工具
-
版本
Python 3.6.5 -
浏览器
chrome(安装 chromedriver) -
相关模块
selenium
time
自动登陆
from selenium import webdriver
import time
browser = webdriver.Chrome()
# 登陆微博
def weibo_login(username, password):
# 打开微博登陆界面
browser.get('https://passport.weibo.cn/signin/login')
# 隐性等待。隐形等待是设置了一个最长等待时间,如果在规定时间内网页加载完成,则执行下一步,否则一直等到时间截止。
# 隐性等待对整个driver的周期都起作用,所以只要设置一次即可。
browser.implicitly_wait(5)
time.sleep(1)
# 填写登陆信息:用户名,密码
browser.find_element_by_id('loginName').send_keys(username)
browser.find_element_by_id('loginPassword').send_keys(password)
time.sleep(1)
# 点击登陆
browser.find_element_by_id('loginAction').click()
time.sleep(1)
# test
# 自己微博的账号密码
username = '********'
password = '********'
weibo_login(username,password)
加关注
# 添加指定用户
def add_follow(uid):
browser.get('https://m.weibo.com/u/' + str(uid))
time.sleep(1)
follow_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div')
follow_button.click()
time.sleep(1)
# 选择分组
group_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[3]/div[2]/footer/div[1]/a')
group_button.click()
time.sleep(1)
# test
# 添加指定用户
uid = '5520391962'
add_follow(uid)
取消关注
# 取消关注指定用户
def delete_follow(uid):
browser.get('https://m.weibo.com/u/' + str(uid))
time.sleep(1)
delete_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div/span/i').click()
time.sleep(1)
delete_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[4]/div[2]/div/div[1]/div/div/ul/li[2]/div/h4').click()
time.sleep(1)
delete_button = browser.find_element_by_xpath('//*[@id="app"]/div[2]/div[1]/div[2]/footer/div[2]/a').click()
time.sleep(1)
# test
# 取消关注指定用户
uid = '5520391962'
delete_follow(uid)
写评论
# 给指定某条微博添加内容
def add_comment(weibo_url, content):
browser.get(weibo_url)
browser.implicitly_wait(5)
content_textarea = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div/div[5]/div/div[1]').click()
content_textarea = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div/div[5]/div/div/div/div[1]/textarea[1]').clear()
time.sleep(1)
content_textarea = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div/div[5]/div/div/div/div[1]/textarea[1]').send_keys(content)
time.sleep(2)
comment_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div/div[5]/div/div/div/div[2]/button').click()
time.sleep(1)
# test
# 给指定微博写评论
weibo_url = 'https://m.weibo.cn/detail/4161433421251081'
content = '测试评论'
add_comment(weibo_url,content)
发微博
# 发文字微博
def post_weibo(content):
# 跳转到用户的首页
browser.get('https://weibo.com')
browser.implicitly_wait(5)
# 点击右上角的发布按钮
post_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div[1]/div[1]/div[2]/div[2]').click()
# 在弹出的文本框中输入内容
content_textarea = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div/main/div[1]/div/span/textarea[1]').send_keys(content)
time.sleep(2)
# 点击发布按钮
post_button = browser.find_element_by_xpath('//*[@id="app"]/div[1]/div/header/div[3]/a').click()
time.sleep(1)
# test
# 自动发微博
content = '测试'
post_weibo(content)
写在之后
更多内容,欢迎关注公众号「Python空间」,期待和你的交流。