栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

b站自动改视频标题,简介的脚本;selenium;py;自动化

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

b站自动改视频标题,简介的脚本;selenium;py;自动化

代码备份如下:

#! /usr/bin/env python3
# -*- coding: UTF-8 -*-
# bilibili 网站自动改命脚本
# 1031 是 81天

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
import argparse
import time
# /html/body/section/main/div/div[2]/div/div[1]/div/p
# div.editor-content > div > p
DRIVER_PATH = "/Users/paul/code/myEnvironment/chromedriver" # /Users/paul/code/myEnvironment/chromedriver # ./driver/chromedriver.exe


# https://member.bilibili.com/platform/upload-manager/article?keyword=1104&page=1

CONTROL_PAGE = 'https://member.bilibili.com/platform/upload-manager/article?keyword={videoTitle}&page=1'
dayTitle = '考研第{day}天'
class Driver:
	def __init__(self):
		# 初始化驱动
		self.driver = None
		self._init_driver()

	def _init_driver(self):
		if self.driver:
			return
		option = webdriver.ChromeOptions()
		option.add_experimental_option('debuggerAddress', '127.0.0.1:9222')
		option.add_argument("--disable-blink-features")
		option.add_argument("--disable-blink-features=AutomationControlled")
		self.driver = webdriver.Chrome(options=option, executable_path=DRIVER_PATH) #  /Users/paul/code/myEnvironment/chromedriver
	def changeName(self, videoTitle, day):
		print("changeName start")
		videoSearchUrl = CONTROL_PAGE.format(videoTitle=videoTitle)
		print("you are going change vid by url: ")
		print(videoSearchUrl)

		self.driver.get(videoSearchUrl)
		# 编辑按钮:
		# #cc-body > div.upload-manage.cc-content-body > div.article-v2-wrap.content > div.is-article.cc-article-wrp > div > div.article-list_wrap > div > div > div > div > div.meta-view > a:nth-child(1)
		editBtnCssSelector = '#cc-body > div.upload-manage.cc-content-body > div.article-v2-wrap.content > div.is-article.cc-article-wrp > div > div.article-list_wrap > div > div > div > div > div.meta-view > a:nth-child(1)'
		self.driver.implicitly_wait(1)
		print("现在在页面:" + self.driver.current_url)

		editBtn = self.driver.find_element_by_css_selector(editBtnCssSelector)
		editBtn.click()
		# wait
		time.sleep(3)
		print("sleep done")
		self.driver.switch_to.frame('videoUpload')
		print("switch_to_frame done")
		self.driver.implicitly_wait(1)

		# 标题框
		titleCssSelector = '#app > div.upload-v2-container > div.upload-v2-step2-container > div.file-content-v2-container > div.normal-v2-container > div.content-title-v2-container > div.content-title-v2-input-wrp > div > div > input'
		titleXpath = '//*[@id="app"]/div[2]/div[2]/div[2]/div[1]/div[6]/div[2]/div/div/input'
		titleInput = self.driver.find_element_by_css_selector(titleCssSelector)
		print("ready to send_keys")
		titleInput.clear()
		# 通过万能的js直接定位到元素然后将 input 元素的value值清空; test fail
		# self.driver.execute_script("arguments[0].value = '';", titleInput)
		# 通过双击清理
		ActionChains(self.driver).double_click(titleInput).perform()
		titleInput.send_keys(dayTitle.format(day=day))
		self.driver.implicitly_wait(1)

		# 简介框
		# #app > div.upload-v2-container > div.upload-v2-step2-container > div.file-content-v2-container > div.normal-v2-container > div.content-desc-v2-container > div.content-desc-v2-text-wrp > div > div.editor.ql-container > div.ql-editor
		introBoxCssSelector = '#app > div.upload-v2-container > div.upload-v2-step2-container > div.file-content-v2-container > div.normal-v2-container > div.content-desc-v2-container > div.content-desc-v2-text-wrp > div > div.editor.ql-container > div.ql-editor'
		introBox = self.driver.find_element_by_css_selector(introBoxCssSelector)
		introBox.clear()
		introText = '我2021年在电子科大读计算机,我是个普通人。这是我19年考研的部分录像,从19年8月开始(开始没录),每天10几个小时,我会在晚上剪成三分钟,配上毛不易的《平凡的一天》或者其他音乐。现在2021年了,又是考研的日子,我开始整理自己考研的视频,这可能对你并没有什么价值,但希望你能知道,经历比结果重要,起码当时我是抱着这个心态的:人生在于当下的经历而不在于离开时的成就。我的微信公众号是:非正经研究生;希望看到视频的你,找到自己的意义。'
		introBox.send_keys(introText)

		# 粉丝动态
		fansInputCssSelector = '#app > div.upload-v2-container > div.upload-v2-step2-container > div.file-content-v2-container > div.fans-dynamic-v2-container > div.fans-dynamic-v2-input-wrp > div > div.editor.ql-container > div.ql-editor'
		fansInput = self.driver.find_element_by_css_selector(fansInputCssSelector)
		fansInput.clear()
		fansText = '#考研##研究生##奋斗##正能量##大学生#'
		fansInput.send_keys(fansText)





parser = argparse.ArgumentParser(description="自动改视频简介内容的脚本而已")
parser.add_argument('videoTitle', help='哪一个视频需要改内容')
parser.add_argument('day', help='这是你考研的第多少天')
arg = parser.parse_args()

if __name__ == '__main__':
	print("in main")
	work = Driver()
	work.changeName(arg.videoTitle, arg.day)
	print("end main")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/283825.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号