Python+Selenium+Webdriver实现自动执行微软奖励积分脚本
短信预约 -IT技能 免费直播动态提醒
脚本运行环境
python 3.6+edge浏览器(推荐使用,因为在edge浏览器中可以获得额外12分,当然chrome浏览器也可以)
webdriver (需匹配电脑安装的浏览器版本)
selenium 4.8.0
首次运行
首次运行需要先获取账号信息,由于这里使用webdriver,打开类似无痕浏览器,需要通过带cookie的方式登录微软账号
from selenium import webdriver
import time
import json
# 填写webdriver的保存目录
driver = webdriver.Edge('/Users/XXXX/Downloads/edgedriver_mac64/msedgedriver')
# 记得写完整的url 包括http和https
driver.get('https://cn.bing.com/')
# 程序打开网页后60秒内 “手动登陆账户”
time.sleep(60)
with open('cookies.txt','w') as f:
# 将cookies保存为json格式
f.write(json.dumps(driver.get_cookies()))
driver.close()
先执行该脚本,然后在弹出的浏览器窗口手动登录微软账号,这里设置的是等待60秒,如果密码比较长的可以修改一下,登录完成后等待窗口自动关闭,这里会保存你的cookie信息到你当前路径
PS:我这边测试过cookie有效时间较长,如果提示登录过期后需要再执行一次
执行脚本开始刷奖励积分
import json
import random
from selenium import webdriver
from selenium.webdriver.edge.options import Options
import time
def OpenUrl(url):
# 访问网址
driver.get(url)
with open('cookies.txt', 'r') as f: #由于webdriver启动时类似无痕模式,使用带cookie的方式登录微软账号
cookies_list = json.load(f)
for cookie in cookies_list:
if isinstance(cookie.get('expiry'), float):
cookie['expiry'] = int(cookie['expiry'])
driver.add_cookie(cookie)
def run_pc():
OpenUrl('https://cn.bing.com/search?q='+str(random_number))
if __name__ == "__main__":
options = Options()
# options.add_argument("--headless") #设置后台运行,无窗口化
# mobile_emulation = {'deviceName': 'iPhone 6'} #添加移动端
# options.add_experimental_option("mobileEmulation", mobile_emulation) #使用移动端模拟器打开
driver = webdriver.Edge('/Users/XXXX/Downloads/edgedriver_mac64/msedgedriver', options=options)
for i in range(30): #每次搜索获取3积分,根据个人等级调整循环次数
random_number = random.randint(1, 100)
run_pc()
print('第', i + 1, '次完成')
time.sleep(2)
driver.quit()
print('任务完成')
如果觉得窗口化占用资源过多的话可以使用无窗口化,获取移动端积分可以把23、24行注释掉
到此这篇关于Python+Selenium+Webdriver实现自动执行微软奖励积分脚本的文章就介绍到这了,更多相关Python Selenium Webdriver自动执行微软奖励积分内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341