数据采集:自动化运营微博实战

功能组成
  • 自动登陆
  • 加关注
  • 取消关注
  • 写评论
  • 发微博
开发工具
  • 版本
    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空间」,期待和你的交流
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rocky0429

一块也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值