Toggle navigation
Toggle navigation
This project
Loading...
Sign in
LiuFuhua
/
xj-marketing
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
zoujie
2024-12-24 16:50:59 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
1149bda675db26948effdbf70f2d922093b7dc97
1149bda6
1 parent
4f612f74
支持 快手,腾讯视频号headless发布
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
12 deletions
uploader/ks_uploader/main.py
uploader/tencent_uploader/main.py
uploader/ks_uploader/main.py
View file @
1149bda
...
...
@@ -83,15 +83,15 @@ class KSVideo(object):
async
def
upload
(
self
,
playwright
:
Playwright
)
->
None
:
# 使用 Chromium 浏览器启动一个浏览器实例
print
(
self
.
local_executable_path
)
if
self
.
local_executable_path
:
browser
=
await
playwright
.
chromium
.
launch
(
headless
=
True
,
executable_path
=
self
.
local_executable_path
,
)
else
:
browser
=
await
playwright
.
chromium
.
launch
(
headless
=
True
)
# 创建一个浏览器上下文,使用指定的 cookie 文件
#
if self.local_executable_path:
#
browser = await playwright.chromium.launch(
#
headless=True,
#
executable_path=self.local_executable_path,
#
)
#
else:
browser
=
await
playwright
.
firefox
.
launch
(
headless
=
True
)
# 创建一个浏览器上下文,使用指定的 cookie 文件
context
=
await
browser
.
new_context
(
storage_state
=
f
"{self.account_file}"
)
context
=
await
set_init_script
(
context
)
context
.
on
(
"close"
,
lambda
:
context
.
storage_state
(
path
=
self
.
account_file
))
...
...
@@ -114,6 +114,23 @@ class KSVideo(object):
# await file_chooser.set_files(self.file_path)
await
page
.
locator
(
"div[class^='_publish-container'] input"
)
.
set_input_files
(
self
.
file_path
)
await
asyncio
.
sleep
(
5
)
# 判断视频是否上传成功,去除引导页
while
True
:
# 判断视频是否上传成功,去除引导页
try
:
skip_button
=
page
.
get_by_role
(
'button'
,
name
=
"Skip"
,
exact
=
True
)
if
await
skip_button
.
count
():
await
skip_button
.
click
()
await
asyncio
.
sleep
(
1
)
else
:
await
asyncio
.
sleep
(
1
)
break
except
:
kuaishou_logger
.
info
(
" [-] 视频正在发布中..."
)
await
asyncio
.
sleep
(
0.5
)
break
if
not
await
page
.
get_by_text
(
"封面设置"
)
.
count
():
raise
Exception
(
"似乎没有跳转到到编辑页面"
)
...
...
uploader/tencent_uploader/main.py
View file @
1149bda
...
...
@@ -137,7 +137,9 @@ class TencentVideo(object):
async
def
upload
(
self
,
playwright
:
Playwright
)
->
None
:
# 使用 Chromium (这里使用系统内浏览器,用chromium 会造成h264错误
browser
=
await
playwright
.
chromium
.
launch
(
headless
=
False
,
executable_path
=
self
.
local_executable_path
)
# browser = await playwright.chromium.launch(headless=True, executable_path=self.local_executable_path)
browser
=
await
playwright
.
firefox
.
launch
(
headless
=
True
)
# 创建一个浏览器上下文,使用指定的 cookie 文件
context
=
await
browser
.
new_context
(
storage_state
=
f
"{self.account_file}"
)
context
=
await
set_init_script
(
context
)
...
...
@@ -150,8 +152,9 @@ class TencentVideo(object):
# 等待页面跳转到指定的 URL,没进入,则自动等待到超时
await
page
.
wait_for_url
(
"https://channels.weixin.qq.com/platform/post/create"
)
# await page.wait_for_selector('input[type="file"]', timeout=10000)
file_input
=
page
.
locator
(
'input[type="file"]'
)
await
file_input
.
set_input_files
(
self
.
file_path
)
file_input
=
await
page
.
locator
(
'input[type="file"]'
)
.
set_input_files
(
self
.
file_path
)
await
page
.
wait_for_selector
(
".cover-img-horizontal"
,
state
=
"attached"
)
# await file_input.set_input_files(self.file_path)
# 填充标题和话题
await
self
.
add_title_tags
(
page
)
# 添加商品
...
...
Please
register
or
login
to post a comment