Python+selenium實現(xiàn)趣頭條的視頻自動上傳與發(fā)布
效果展示
效果展示

素材展示
一個為視頻,另一個為像素大小不小于視頻的封面。

實現(xiàn)過程
調(diào)用已啟用的瀏覽器
通過調(diào)用已啟用的瀏覽器,可以實現(xiàn)直接跳過每次的登錄過程。
使用方法可以參考補充內(nèi)容
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:5003")
driver = webdriver.Chrome(options = options)
上傳視頻和封面
上傳功能的使用方法可以參考補充內(nèi)容
# 上傳視頻
driver.find_element_by_xpath('//input[@type="file"]').send_keys(path_mp4)
# 等待視頻上傳完成
while True:
time.sleep(3)
try:
driver.find_element_by_xpath('//*[contains(text(),"上傳成功")]')
break;
except Exception as e:
print("視頻還在上傳中···")
print("視頻已上傳完成!")
# 添加封面
time.sleep(1)
driver.find_element_by_xpath('//*[@class="el-upload"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[text()="自定義封面"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[text()="選擇圖片"]/../..//input[@type="file"]').send_keys(path_cover)
time.sleep(3)
driver.find_element_by_xpath('//*[text()="確 定"]').click()
完整源碼展示?
import selenium
from selenium import webdriver
import pathlib
import time
from selenium.webdriver.common.keys import Keys
# 基本信息
# 視頻存放路徑
catalog_mp4 = r"C:\Users\Administrator\Desktop\視頻發(fā)布"
# 視頻描述
describe = "裸眼3D看蜘蛛俠 #搞笑 #電影 #視覺震撼"
time.sleep(10)
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:5003")
driver = webdriver.Chrome(options = options)
path = pathlib.Path(catalog_mp4)
# 視頻地址獲取
path_mp4 = ""
for i in path.iterdir():
if(".mp4" in str(i)):
path_mp4 = str(i);
break;
if(path_mp4 != ""):
print("檢查到視頻路徑:" + path_mp4)
else:
print("未檢查到視頻路徑,程序終止!")
exit()
# 封面地址獲取
path_cover = ""
for i in path.iterdir():
if(".png" in str(i) or ".jpg" in str(i)):
path_cover = str(i);
break;
if(path_cover != ""):
print("檢查到封面路徑:" + path_cover)
else:
print("未檢查到封面路徑,程序終止!")
exit()
def publish_qutoutiao():
'''
作用:發(fā)布趣頭條視頻
'''
# 進(jìn)入創(chuàng)作者頁面,并上傳視頻
driver.get("https://mp.qutoutiao.net/publish-content/video")
time.sleep(2)
driver.find_element_by_xpath('//input[@type="file"]').send_keys(path_mp4)
# 等待視頻上傳完成
while True:
time.sleep(3)
try:
driver.find_element_by_xpath('//*[contains(text(),"上傳成功")]')
break;
except Exception as e:
print("視頻還在上傳中···")
print("視頻已上傳完成!")
# 輸入標(biāo)題
driver.find_element_by_xpath('//*[@placeholder="內(nèi)容標(biāo)題5-30字"]').clear()
time.sleep(2)
driver.find_element_by_xpath('//*[@placeholder="內(nèi)容標(biāo)題5-30字"]').send_keys(describe)
# 輸入描述信息
time.sleep(1)
driver.find_element_by_xpath('//textarea').clear()
time.sleep(2)
driver.find_element_by_xpath('//textarea').send_keys(describe)
# 選擇分類
time.sleep(1)
driver.find_element_by_xpath('//*[@placeholder="請選擇分類"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[text()="電影"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[text()="分類:"]').click()
time.sleep(1)
# 輸入標(biāo)簽
time.sleep(1)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').click()
time.sleep(2)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').send_keys("視覺震撼")
time.sleep(2)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').send_keys(Keys.ENTER)
time.sleep(2)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').send_keys("搞笑")
time.sleep(2)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').send_keys(Keys.ENTER)
time.sleep(2)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').send_keys("電影")
time.sleep(2)
driver.find_element_by_xpath('//*[@class="content-tag"]//input').send_keys(Keys.ENTER)
# 添加封面
time.sleep(1)
driver.find_element_by_xpath('//*[@class="el-upload"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[text()="自定義封面"]').click()
time.sleep(1)
driver.find_element_by_xpath('//*[text()="選擇圖片"]/../..//input[@type="file"]').send_keys(path_cover)
time.sleep(3)
driver.find_element_by_xpath('//*[text()="確 定"]').click()
# 人工進(jìn)行檢查并發(fā)布
# time.sleep(3)
# # 點擊發(fā)布
# driver.find_element_by_xpath('//*[text()="發(fā)布"]').click()
# 開始執(zhí)行視頻發(fā)布
publish_qutoutiao()
補充
Python+selenium操作已啟用的chrome瀏覽器
首先在 chrome 快捷方式的目標(biāo)后面加上這個參數(shù)。
前面是代表調(diào)試端口,可以隨便用端口,后面指向一個新的文件夾用于存儲用戶數(shù)據(jù)。
注: 后面的參數(shù)如果不加上,端口啟用好像會失敗,目前沒有找到原因。
--remote-debugging-port=5003 --user-data-dir="C:\Py_selenium\auto"

然后雙擊快捷快捷方式打開瀏覽器就好了,現(xiàn)在瀏覽器就能被控制了。

不確定端口是否啟用,可以在 cmd 用下面的方法查看端口啟用情況。
C:\Users\Administrator>netstat -ano | findstr 5003 TCP 127.0.0.1:5003 127.0.0.1:53546 FIN_WAIT_2 12180 TCP 127.0.0.1:5003 127.0.0.1:53547 TIME_WAIT 0 TCP 127.0.0.1:5003 127.0.0.1:53858 FIN_WAIT_2 12180 TCP 127.0.0.1:5003 127.0.0.1:53859 TIME_WAIT 0 TCP 127.0.0.1:5003 127.0.0.1:53900 FIN_WAIT_2 12180 TCP 127.0.0.1:5003 127.0.0.1:53901 TIME_WAIT 0 TCP 127.0.0.1:53546 127.0.0.1:5003 CLOSE_WAIT 15540 TCP 127.0.0.1:53858 127.0.0.1:5003 CLOSE_WAIT 9108 TCP 127.0.0.1:53900 127.0.0.1:5003 CLOSE_WAIT 16320
通過訪問調(diào)試端口控制已啟用的瀏覽器。
from selenium import webdriver
# 另一個導(dǎo)入chrome參數(shù)的方法
# from selenium.webdriver.chrome.options import Options
# options = Options()
options = webdriver.ChromeOptions()
options.add_experimental_option("debuggerAddress", "127.0.0.1:5003")
driver = webdriver.Chrome(options = options)
print(driver.title)
運行效果圖:

Python+selenium實現(xiàn)自動導(dǎo)入、上傳外部文件
一開始我覺得導(dǎo)入外部文件是需要操作 windows 的文件窗口呢,后來發(fā)現(xiàn)原來不用那么麻煩,只要給文件上傳的元素傳一個本地路徑就好了,就是一個 input 類型的。

右鍵元素點擊檢查可以看到對應(yīng)的元素。

然后 send_keys() 傳入路徑就好了。
driver.find_element_by_xpath('//input[@type="file"]').send_keys('C:\\Users\\Administrator\\Desktop\\文件.zip')
以上就是Python+selenium實現(xiàn)趣頭條的視頻自動上傳與發(fā)布的詳細(xì)內(nèi)容,更多關(guān)于Python selenium視頻自動上傳與發(fā)布的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
matplotlib圖例legend語法及設(shè)置的方法
這篇文章主要介紹了matplotlib圖例legend語法及設(shè)置的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
python通過百度地圖API獲取某地址的經(jīng)緯度詳解
這篇文章主要給大家介紹了關(guān)于python通過百度地圖API獲取某地址的經(jīng)緯度的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
Python實現(xiàn)獲取域名所用服務(wù)器的真實IP
本文是給大家分享的使用python獲取到域名所在服務(wù)器的真實IP,原因是現(xiàn)在很多的網(wǎng)站都使用了CDN,大家很難直接查到域名的服務(wù)器的IP,本文是使用了一個巧妙的方法,詳情請仔細(xì)看看下文吧2015-10-10
keras.utils.to_categorical和one hot格式解析
這篇文章主要介紹了keras.utils.to_categorical和one hot格式解析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
python實現(xiàn)寫數(shù)字文件名的遞增保存文件方法
今天小編就為大家分享一篇python實現(xiàn)寫數(shù)字文件名的遞增保存文件方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

