当前位置: 首页 > news >正文

跨境电商网站模板wordpress壁纸

跨境电商网站模板,wordpress壁纸,上海百度,美食网站的建设论文背景 研究下 PythonSelenium 自动化测试框架#xff0c;简单实现 Mac 下自动化批量上传视频西瓜视频并发布#xff0c;分享给需要的同学#xff08;未做过多的异常处理#xff09;。 脚本实现 首先通过手工手机号登录#xff0c;保存西瓜视频网站的 cookie 文件 之后加载… 背景 研究下 PythonSelenium 自动化测试框架简单实现 Mac 下自动化批量上传视频西瓜视频并发布分享给需要的同学未做过多的异常处理。 脚本实现 首先通过手工手机号登录保存西瓜视频网站的 cookie 文件 之后加载 cookie 内容使用脚本批量上传视频保存到草稿也可自动发布为了二次编辑如修改封面 最后通过遍历视频草稿列表来进行草稿视频发布PS: 同一天上传或发布视频太多时会被西瓜视频限流。 安装依赖 # 安装依赖保存网站 cookie# 安装 chromedriver $ brew install chromedriver 脚本内容 #!/usr/bin/python # -*- coding: utf-8 -*- import time import json import os import shutil import sysfrom selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver import ActionChains from pykeyboard import PyKeyboard from pymouse import PyMouse import pyperclipclass XiGua:Mac 西瓜视频自动上传视频及发布草稿def __init__(self):初始化打开浏览器self.driver webdriver.Chrome()def save_cookies(self, cookies_file_name):保存 cookiescookies_file_name: cookies 文件名称# 预留 20 秒来进行手工登录time.sleep(20)# 登录成功后保存 cookies 文件with open(cookies_file_name, w) as cookies_file:cookies_file.write(json.dumps(self.driver.get_cookies()))def load_cookies(self, cookies_file_name):加载 cookiecookies_file_name: cookies 文件名称# 加载 cookies 文件with open(cookies_file_name, r) as cookies_file:cookies_list json.load(cookies_file)for cookie in cookies_list:if expiry in cookie:del cookie[expiry]self.driver.add_cookie(cookie)# 加载 cookie 后刷新页面生效self.driver.refresh()def is_exist_element_by_xpath(self, xpath):判断元素是否存在flag Truetry:self.driver.find_element_by_xpath(xpath)return flagexcept Exception as e:flag Falseprint(xpath: [%s] 的元素不存在错误%s % xpath, e)return flagdef upload_video(self, video_file_path):上传视频video_file_path: 上传视频路径# 打开上传视频页面self.driver.get(https://studio.ixigua.com/upload?frompost_article)# 点击上传self.driver.find_element_by_class_name(byte-upload-trigger-drag).click()time.sleep(5)# 选择视频文件k PyKeyboard()m PyMouse()# 打开k.press_keys([Command, Shift, G])x_dim, y_dim m.screen_size()k.press_keys([Shift])m.click(x_dim // 2, y_dim // 2, 1)# 复制视频文件路径pyperclip.copy(video_file_path)# 粘贴k.press_keys([Command, V])time.sleep(2)k.press_key(Return)time.sleep(2)k.press_key(Return)time.sleep(2)# 设置转载选项self.driver.find_element_by_xpath(//*[idjs-video-list-content]/div/div[2]/div[4]/div[2]/div/div/label[2]/span/span).click()time.sleep(1)# 同步到抖音# self.driver.find_element_by_class_name(byte-checkbox-mask).click()# 循环判断视频上传成功不成功等待10秒后再次判断直到成功while 上传成功 not in self.driver.find_element_by_xpath(//*[idjs-video-list-content]/div/div[1]/div[1]/div[2]/div[2]).text:print(循环等待视频上传成功等待10秒)time.sleep(10)# 设置视频封面self.driver.find_element_by_class_name(m-xigua-upload).click()print(点击-上传封面)time.sleep(5)try:reload self.driver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/div[1]/div/div/div/div[2])# 视频封面解析失败处理循环刷新if reload ! :print(视频封面解析失败处理开始循环刷新)while XiGua.is_exist_element_by_xpath(self,/html/body/div[3]/div/div[2]/div/div[1]/div/div/div/div[2]):# 点击循环self.driver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/div[1]/div/div/div/div[2]).click()print(刷新失败后等待5秒再次刷新)time.sleep(5)# 选择第一个图片img self.driver.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/div[1]/div/div/div[1]/img)img.click()except Exception as e:print(封面解析正常无需刷新)pass# 下一步cover_next_element WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(/html/body/div[3]/div/div[2]/div/div[2]/div))cover_next_element.click()print(点击-封面下一步)try:# 完成裁剪cover_crop_element WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(//*[idtc-ie-base-content]/div[2]/div[2]/div[2]/div/div[2]/div/div/div[2]))if cover_crop_element ! :cover_crop_element.click()print(点击-封面完成裁剪)else:print(封面无需裁剪)except Exception as e:print(裁剪封面出现异常%s % e)passtime.sleep(5)# 确定self.driver.find_element_by_xpath(//*[idtc-ie-base-content]/div[2]/div[2]/div[3]/div[3]/button[2]).click()print(点击-封面确定)time.sleep(1)# 再次确定self.driver.find_element_by_xpath(/html/body/div[4]/div/div[2]/div/div[2]/button[2]).click()print(点击-封面再次确定)time.sleep(5)# 存草稿draft_element WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(//*[idjs-submit-draft-0]/button))action ActionChains(self.driver)print(点击-保存草稿)# 移动滚动条到底部js window.scrollTo(0,document.body.scrollHeight)self.driver.execute_script(js)# 移动到 存草稿 按钮点击action.move_to_element(draft_element).click().perform()def close(self):关闭浏览器self.driver.close()def batch_upload(self, videos_dir_path):批量上传视频videos_dir_path: 上传视频存储路径files os.listdir(videos_dir_path)# 降序排序上传草稿发布时视频序号则为顺序files.sort(reverseTrue)# 批量上传视频for file in files:if os.path.splitext(file)[1] .mp4:full_file_path os.path.join(videos_dir_path, os.path.splitext(file)[0])print(开始上传视频%s % full_file_path)self.upload_video(full_file_path)src os.path.join(videos_dir_path, file)dst os.path.join(videos_dir_path, bak, file)# 发布完成后移到到备份目录shutil.move(src, dst)def videos_release(self):草稿视频发布self.driver.get(https://studio.ixigua.com/content)time.sleep(2)# 点击草稿导航draft_navigation_element WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(//*[idapp]/div/section/div/div[1]/ul/li[3]))draft_navigation_element.click()print(点击-草稿导航)time.sleep(2)# 草稿列表draft_elements self.driver.find_elements_by_class_name(content-card__title )# 草稿列表为空则退出if len(draft_elements) 0:print(草稿列表为空)XiGua.close(self)sys.exit()# 循环发布草稿每次都发布第一个for i in range(1, 99999):# 草稿列表为空退出if draft_elements :print(草稿发布完成总共%s % str(i))XiGua.close(self)sys.exit()print(当前发布数量 %s 发布视频: %s % (str(i), draft_elements[0].text))# 发布草稿第一个视频draft_elements[0].click()time.sleep(3)# 立即发布element2 WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(//button[contains(text(), 发布)]))element2.click()print(点击-视频发布)# 判断是否发布失败如标题超长try:# 错误处理if XiGua.is_exist_element_by_xpath(self, /html/body/div[3]/div/div/div/span):print(发布出现错误退出请检查错误如标题超长等)sys.exit()except Exception as e:print(草稿发布异常%s % e)pass# 处理封面分辨率低提示try:# 封面分辨率低cover_cancel_element self.driver.find_element_by_xpath(//div[contains(text(), 取消)])print(封面分辨率低处理,直接取消)# 错误处理if cover_cancel_element ! :print(取消封面分辨率低)cover_cancel_element.click()# 立即发布cover_publish_element WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(//button[contains(text(), 发布)]))cover_publish_element.click()except Exception as e:print(封面分辨率低出现异常%s % e)pass# 点击草稿draft_publish_element WebDriverWait(self.driver, 30).until(lambda x: x.find_element_by_xpath(//*[idapp]/div/section/div/div[1]/ul/li[3]))draft_publish_element.click()time.sleep(2)print(重新获取草稿列表)draft_elements self.driver.find_elements_by_class_name(content-card__title )print(draft_elements)def xigua_videos_release(self, base_url, cookies_file_path):西瓜视频发布草稿base_url: 西瓜视频网站cookies_file_path: 西瓜视频 cookies 文件路径self.driver.get(base_url)# 加载 cookiesXiGua.load_cookies(self, cookies_file_path)# 草稿发布视频XiGua.videos_release(self)# 关闭浏览器XiGua.close(self)def xigua_batch_upload(self, base_url, cookies_file_path, videos_dir_path):西瓜视频批量发布视频base_url: 西瓜视频网站cookies_file_path: 西瓜视频 cookies 文件路径videos_dir_path: 上传视频存储路径self.driver.get(base_url)XiGua.load_cookies(self, cookies_file_path)XiGua.batch_upload(self, videos_dir_path)XiGua.close(self)def xigua_save_cookies(self, base_url, cookies_file_path):保存网站 cookiebase_url: 网站地址cookies_file_path: 网站 cookies 文件路径self.driver.get(base_url)# 保存 cookiesXiGua.save_cookies(self, cookies_file_path)XiGua.close(self)if __name__ __main__:xi_gua XiGua()# 西瓜视频base_url https://www.ixigua.com/xigua_cookies /tmp/xigua_update_video/xigua_cookies.txtvideos_dir_path /tmp/rm## 1. 保存 cookie# xi_gua.xigua_save_cookies(base_url, xigua_cookies.txt)## 2. 批量上传xi_gua.xigua_batch_upload(base_url, xigua_cookies, videos_dir_path)## 3. 批量发布草稿# xi_gua.xigua_videos_release(base_url, xigua_cookies) 行动吧在路上总比一直观望的要好未来的你肯定会感 谢现在拼搏的自己如果想学习提升找不到资料没人答疑解惑时请及时加入扣群 320231853里面有各种软件测试开发资料和技术可以一起交流学习哦。 最后感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 ​ 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你
http://www.w-s-a.com/news/619794/

相关文章:

  • 国内做网站网站代理电子商务网站建设与维护概述
  • 如何做地方网站推广沈阳网势科技有限公司
  • 哈尔滨网站优化技术涵江网站建设
  • 做网站搞笑口号wordpress全屏动画
  • 怎么可以建网站小程序代理项目
  • 怎样做软件网站哪个网站用帝国cms做的
  • 网站开发编程的工作方法wordpress dux-plus
  • 廊坊电子商务网站建设公司网站进不去qq空间
  • 南宁网站推广费用创意网页设计素材模板
  • 深圳技术支持 骏域网站建设wordpress 酒主题
  • 东莞网站建设+旅游网站改版数据来源表改怎么做
  • 手机端做的优秀的网站设计企业做网站大概多少钱
  • 优化网站使用体验手机网站解析域名
  • 网站制作 商务做网站的软件名字全拼
  • 阿里巴巴网官方网站温州网站建设设计
  • 传奇购买域名做网站国外网站设计 网址
  • 西安凤城二路网站建设seo网站是什么
  • 网站后台如何更换在线qq咨询代码在线种子资源网
  • 东莞网站优化制作免费中文wordpress主题下载
  • 东莞建筑设计院排名网络优化论文
  • 做牙工作网站郑州前端开发培训机构
  • 温州专业建站网站制作的管理
  • 公司网站开发策划书有没有专门做教程的网站
  • 江苏省工程建设信息网站一天赚1000块钱的游戏
  • 制作响应式网站报价品牌建设整体体系包括什么
  • 网站推广策划报告目前做win7系统最好的网站
  • 东莞网站建设咨询公江西网站建设平台
  • 什么是网站功能源码下载站
  • 石家庄制作网站的公司双柏县住房和城乡建设局网站
  • 影视vip网站建设教程ppt模板免费下载 素材红色