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

功能组成

  • 自动登陆
  • 加关注
  • 取消关注
  • 写评论
  • 发微博

开发工具

  • 版本
    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空间」,期待和你的交流
在这里插入图片描述

你可能感兴趣的:(Python空间)