定时微博咋发 定时微博怎么发( 二 )


三、完整代码实现思路: 其实和平时我们正常操作一样 , 只不过这里,全程由selenium来实现,模拟点击和输入,所以整个过程为:打开登录页面->输入账号密码->点击登录按钮->在发微博框输入发送内容->点击发送按钮->关闭浏览器(自?。?。
3.1 目前自动输入账号可能会弹出登录保护需扫二维码验证from selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport time'''自动发布微博content:发送内容username:微博账号password:微博密码'''def post_weibo(content, username, password):# 加载谷歌浏览器驱动path = r'C:/MyEnv/chromedriver.exe '# 指定驱动存放目录ser = Service(path)chrome_options = webdriver.ChromeOptions()# 把允许提示这个弹窗关闭prefs = {"profile.default_content_setting_values.notifications": 2}chrome_options.add_experimental_option("prefs", prefs)driver = webdriver.Chrome(service=ser, options=chrome_options)driver.maximize_window()# 设置页面最大化,避免元素被隐藏print('# get打开微博主页')url = 'http://weibo.com/login.php'driver.get(url)# get打开微博主页time.sleep(5)# 页面加载完全print('找到用户名 密码输入框')input_account = driver.find_element_by_id('loginname')# 找到用户名输入框input_psw = driver.find_element_by_css_selector('input[type="password"]')# 找到密码输入框# 输入用户名和密码input_account.send_keys(username)input_psw.send_keys(password)print('# 找到登录按钮 //div[@node-type="normal_form"]//div[@class="info_list login_btn"]/a')bt_logoin = driver.find_element_by_xpath('//div[@node-type="normal_form"]//div[@class="info_list login_btn"]/a')# 找到登录按钮bt_logoin.click()# 点击登录# 等待页面加载完毕#有的可能需要登录保护,需扫码确认下time.sleep(40)# 登录后 默认到首页,有微博发送框print('# 找到文本输入框 输入内容 //*[@id="homeWrap"]/div[1]/div/div[1]/div/textarea')weibo_content = driver.find_element_by_xpath('//*[@id="homeWrap"]/div[1]/div/div[1]/div/textarea')weibo_content.send_keys(content)print('# 点击发送按钮 //*[@id="homeWrap"]/div[1]/div/div[4]/div/button')bt_push = driver.find_element_by_xpath('//*[@id="homeWrap"]/div[1]/div/div[4]/div/button')bt_push.click()# 点击发布time.sleep(15)driver.close()# 关闭浏览器if __name__ == '__main__':username = '微博用户名'password = "微博密码"# 自动发微博content = '每天进步一点'post_weibo(content, username, password)复制代码

定时微博咋发 定时微博怎么发


通过cookie进行登录可跳过扫码登录 , cookie过期后重新获取下cookie就可以了 。导入第三方包from selenium import webdriverfrom selenium.webdriver.chrome.service import Serviceimport timeimport requestsimport json复制代码获取cookie到本地这里主要利用了selenium的get_cookies函数获取cookies 。
# 获取cookies 到本地def get_cookies(driver):driver.get('https://weibo.com/login.php')time.sleep(20) # 留时间进行扫码Cookies = driver.get_cookies() # 获取list的cookiesjsCookies = json.dumps(Cookies) # 转换成字符串保存with open('cookies.txt', 'w') as f:f.write(jsCookies)print('cookies已重新写入!')# 读取本地的cookiesdef read_cookies():with open('cookies.txt', 'r', encoding='utf8') as f:Cookies = json.loads(f.read())cookies = []for cookie in Cookies:cookie_dict = {'domain': '.weibo.com','name': cookie.get('name'),'value': cookie.get('value'),'expires': '','path': '/','httpOnly': False,'HostOnly': False,'Secure': False}cookies.append(cookie_dict)return cookies复制代码

推荐阅读