将本地视频批量发布视频自媒体的方发,直接上代码
import json
from selenium.webdriver.common.by import By
from selenium import webdriver
import xlwings as xw
import datetime
import time
import re
browser = webdriver.Chrome()
def open_cookies():
print('-----------------开始度小视登录-----------------')
url = 'https://baijiahao.baidu.com/builder/theme/bjh/login'
browser.get(url)
time.sleep(20)
with open('cookiesx.txt','w') as f:
# 将cookies保存为json格式
f.write(json.dumps(browser.get_cookies()))
f.write(json.dumps(browser.get_cookies()))
print('-----------------开始火山小视频登录-----------------')
url = 'https://creator.huoshan.com/?type=user&app=hotsoon&next=&nocheck='
browser.get(url)
time.sleep(20)
with open('cookies1.txt', 'w') as f:
# 将cookies保存为json格式
f.write(json.dumps(browser.get_cookies()))
browser.close()
def open_data():
print('-----------------开始从上传列表中提取数据-----------------')
app = xw.App(visible=False, add_book=False)
workbook2 = app.books.open('上传列表.xlsx')
worksheet2 = workbook2.sheets['Sheet1']
data2 = worksheet2.range('A1').expand('table') # 选择工具表中已有数据的单元格区域
num = data2.shape[0] # 获取已有数据的单元格区域的行数(最后一行)
num1 = str(num) # 转换为字符格式
data1 = worksheet2.range('B2', ('B' + num1)).value
data5 = worksheet2.range('C2', ('C' + num1)).value
m = 0
for i in data1:
for q in data5:
data2 = data1[m]
print(data2)
data6 = str(data5[m])
print(data6)
m = m + 1
print('-----------------开始上传度小视-----------------')
browser.get('https://baijiahao.baidu.com/builder/theme/bjh/login')
time.sleep(5)
of = open('cookiesx.txt', 'r', encoding='utf-8')
cookies = []
r = of.read()[1:-1]
pattern = r'({.*?})'
r1 = re.findall(pattern, r)
for i in r1:
dic = json.loads(i)
cookies.append(dic)
of.close()
with open('cookiesx.txt', 'r',encoding='utf-8') as f:
# 使用json读取cookies 注意读取的是文件 所以用load而不是loads
cookies_list = json.load(f)
# 方法1 将expiry类型变为int
for cookie2 in cookies_list:
# 并不是所有cookie都含有expiry 所以要用dict的get方法来获取
if isinstance(cookie2.get('expiry'), float):
cookie2['expiry'] = int(cookie2['expiry'])
browser.add_cookie(cookie2)
browser.get('https://quanmin.baidu.com/web/publish/upload')
time.sleep(10)
browser.find_element(By.XPATH,
'//*[@id="root"]/section/section/main/div/div/div[3]/div[2]/div/span/div/span/input').send_keys(data2)
time.sleep(40)
browser.find_element(By.XPATH,
'//*[@id="root"]/section/section/main/div/div/div[3]/div[2]/div/div[2]/div/button[1]').click()
time.sleep(5)
browser.find_element(By.XPATH, '//*[@id="videoParamData[0].desc"]').send_keys(data6)
time.sleep(5)
browser.find_element(By.XPATH,
'//*[@id="root"]/section/section/main/div/div/div[4]/div/div[2]/div/div/div[2]/button[1]').click()
time.sleep(3)
print('-----------------开始上传火山-----------------')
browser.get('https://creator.huoshan.com/?type=user&app=hotsoon&next=&nocheck=')
time.sleep(3)
with open('cookies1.txt', 'r') as f:
# 使用json读取cookies 注意读取的是文件 所以用load而不是loads
cookies_list = json.load(f)
for cookie1 in cookies_list:
# 方法1 将expiry类型变为int
# 并不是所有cookie都含有expiry 所以要用dict的get方法来获取
if isinstance(cookie1.get('expiry'), float):
cookie1['expiry'] = int(cookie1['expiry'])
browser.add_cookie(cookie1)
time.sleep(3)
browser.get('https://creator.huoshan.com/content/upload')
time.sleep(5)
browser.find_element(By.XPATH,
'//*[@id="root"]/div/section/section/aside/div/div/div/div[2]/div/div/div/ul/li[1]/span').click()
time.sleep(5)
browser.find_element(By.XPATH,
'//*[@id="root"]/div/section/section/main/div/div/div[2]/div/label/input').send_keys(
data2)
time.sleep(30)
browser.find_element(By.XPATH, '//*[@id="content"]/div/div[2]/div/div/div/div').send_keys(data6)
time.sleep(3)
browser.find_element(By.XPATH,
'//*[@id="root"]/div/section/section/main/div/div/div[4]/div[1]/div[8]/button[1]').click()
time.sleep(3)
from dingtalkchatbot.chatbot import DingtalkChatbot
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=b26ab5c8394bc421021e4469e30b26989f2a995196e9dc5ef56d1b53f0fed9c7'
xiaoding = DingtalkChatbot(webhook)
# 前置信息可以包含在钉钉上设置的关键词,我这里是大家好
news = '编发内容开始发送------' + str(data6)
xiaoding.send_text(msg=news, is_at_all=True)
time.sleep(4000)
if __name__ =='__main__':
#open_cookies()#登录
open_data()