业务合作请联系:13958075150
【1】首次登录使用selenium登录并将cookies存为文件,实现免密登录,并便于后期维护cookie。
# 首次使用selenium登录,并将cookies存为文件
from selenium import webdriver
import time
import json
br = webdriver.Chrome()
br.get("https://mp.toutiao.com")
# 点击登陆按钮
login = br.find_element_by_css_selector('body > div > div.carousel > div.page.page-1 > div > img.i3')
login.click()
time.sleep(3)
# 点击手机密码登录按钮
phone_login_button = br.find_element_by_css_selector('#login-type-account')
phone_login_button.click()
# 填写手机号
user_name = br.find_element_by_id('user-name')
user_name.send_keys('您的账号')
# 填写密码
password_input = br.find_element_by_id('password')
password_input.send_keys('您的密码')
# 登陆
br.find_element_by_id('bytedance-login-submit').click()
time.sleep(5)
cookies = br.get_cookies()
# print(cookies)
with open('/Users/macbookair/Desktop/cookies-2.json', 'w') as f:
self_cookies = f.write(json.dumps(cookies))
【2】读取cookies文件,并使用该cookie登录。
from selenium import webdriver
import time
import json
br = webdriver.Chrome()
br.get("https://sso.toutiao.com/login/?service=https://mp.toutiao.com/sso_confirm/?redirect_url=JTJG")
with open('cookies文件路径/cookies-2.json') as f:
cookies = json.loads(f.read())
for cookie in cookies:
if 'expiry' in cookie:
del cookie['expiry']
br.add_cookie(cookie)
br.get("https://mp.toutiao.com/profile_v3/index")
# 点击左侧导航栏 “西瓜视频”按钮
xigua_button = br.find_element_by_css_selector('#root > div.pgc-wrapper > div.pgc-content > ul > li.tui2-menu-sub.xigua_tab > div')
xigua_button.click()
# 点击左侧导航栏 “西瓜视频” --> “发布视屏”按钮
publish_vedio = br.find_element_by_css_selector('#root > div.pgc-wrapper > div.pgc-content > ul > li.tui2-menu-sub.xigua_tab.tui2-menu-sub-active > ul > li:nth-child(2)')
publish_vedio.click()
upload_vedio = br.find_element_by_css_selector('#xigua > div > div > div.m-index > div.m-index-main > div:nth-child(1) > div.undefined.upload-handler > input[type=file]')
upload_vedio.send_keys(r'视频文件路径')
# 获取标题输入框,清除原标题并输入新标题
title_input = br.find_element_by_css_selector('#upload-manage > div > div.video-list-content > div > div.m-video-item > div.m-edit-from > div:nth-child(1) > div.m-form-item.m-title > div > div.m-right-content > div > input')
title_input.clear()
title_input.send_keys('我是标题'*3)
# 获得简介并输入内容
jianjie_textarea = br.find_element_by_css_selector('#upload-manage > div > div.video-list-content > div > div.m-video-item > div.m-edit-from > div:nth-child(1) > div.m-form-item.m-abstract > div > div.title-input.article-title-wrap-new > span.tui2-input-wrapper > textarea')
jianjie_textarea.clear()
jianjie_textarea.send_keys('我是简介'*5)
# 获得是否投放广告
toufang_radio = br.find_element_by_css_selector('#upload-manage > div > div.video-list-content > div > div.m-video-item > div.m-edit-from > div:nth-child(1) > div.m-form-item.m-ads > div > div.tui2-radio-group > label:nth-child(1)')
toufang_radio.click()
toufang_radio_no = br.find_element_by_css_selector('#upload-manage > div > div.video-list-content > div > div.m-video-item > div.m-edit-from > div:nth-child(1) > div.m-form-item.m-ads > div > div.tui2-radio-group > label:nth-child(2)')
# toufang_radio_no.click()
tag_name_html = '<div class="Select-value"><span class="Select-value-icon" aria-hidden="true">×</span><span class="Select-value-label" role="option" aria-selected="true" id="react-select-2--value-0">www<span class="Select-aria-only"> </span></span></div>'
# 添加视频标签
# vedio_tags = br.find_element_by_id('react-select-2--value')
tags_js = "document.getElementById('react-select-2--value').innerHTML=tag_name_html"
br.execute_script(tags_js)