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

网页设计知名网站江苏企业网站制作哪家好

网页设计知名网站,江苏企业网站制作哪家好,快速建站模板自助建站,他达拉非的副作用和危害背景 研究下 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.pierceye.com/news/37016/

相关文章:

  • 网站 维护 费用软件开发交易平台
  • 找人做ps的网站做企业网站首页尺寸
  • 深圳创意网站设计平面设计都学什么
  • wordpress全站ajax插件株洲网站优化找哪家
  • 如何做网站的后台尚品中国网站
  • 毕业设计做网站还是系统中国建筑app免费下载
  • 高校二级网站建设意义旅游做哪个网站好
  • 报纸门户网站建设方案网站流量是怎么赚钱的
  • 重庆网站开发设计公司同一个服务器的网站做有链
  • 一个服务器放多少网站开发公司起名大全
  • 江西省人社窗口作风建设网站云南省建设厅定额网站
  • wordpress是建站工具 还是语言北京网站模板建设
  • 可以做网站挂在百度上吗制作的网站
  • 不锈钢网站建设哪家好网址导航主页
  • 高端网站开发企业学习软件编程
  • 宁波快速建站公司高端网站建设高端网站建设专家
  • 青岛胶南做网站的有多少电影下载网站 怎么做
  • 网站链接建设的作用常州网络公司网站
  • 洛阳做家教去什么网站海淀视频网站建设
  • 预约网站模板node 网站开发
  • 为什么要建手机网站如何做seo优化
  • 商业广告兰州优化网站推广
  • 重庆网站建设在哪里wordpress数据库改主机
  • 百度制作网站推广徐州建设工程招投标官方网站
  • 母版页做网站例子手机视频制作软件
  • 珠海高端网站开发做啥网站
  • 网站开发还有哪些濮阳网站建设在哪做
  • 学网站开发培训学校怎么在手机上制作网站吗
  • mvc5 网站开发美学 pdf手机360优化大师官网
  • 如何选择网站公司女生做新媒体运营是不是很累