Python+Selenium+Webdriver实现自动执行微软奖励积分脚本

作者:白马百度 时间:2022-09-13 13:49:07 

脚本运行环境

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行注释掉

来源:https://segmentfault.com/a/1190000043418861

标签:Python,Selenium,Webdriver
0
投稿

猜你喜欢

  • php自动获取字符串编码函数mb_detect_encoding

    2023-09-12 03:32:11
  • 解析:怎样掌握SQL Server中的数据查询

    2009-01-19 13:30:00
  • 千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码

    2023-08-19 20:33:57
  • ORACLE常用数值函数、转换函数、字符串函数

    2023-07-21 02:03:40
  • ASP.NET Core Authentication认证实现方法

    2023-07-21 12:21:31
  • Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】

    2023-07-19 23:31:35
  • ADSI+ASP添加IP到IIS禁止访问列表中

    2011-04-02 10:42:00
  • 完美解决Python matplotlib绘图时汉字显示不正常的问题

    2023-09-28 05:30:55
  • python3中的类继承你真的了解吗

    2021-06-18 11:23:53
  • ASP利用TCPIP.DNS组件获得域名对应的IP

    2009-11-07 19:21:00
  • python全面解析接口返回数据

    2023-09-15 17:02:28
  • tensorflow可视化Keras框架中Tensorboard使用示例

    2023-08-09 01:39:27
  • ASP提高数据显示效率-缓存探幽

    2007-09-28 12:37:00
  • Python代码模拟CPU工作原理

    2023-08-04 15:23:49
  • 常见SQL Server 2000漏洞及其相关利用

    2007-10-01 14:45:00
  • 3个JS控制图片滚动的效果

    2007-10-23 13:40:00
  • 重新阅读《HTTP协议基础》

    2008-04-04 17:40:00
  • Python读取配置文件-ConfigParser的二次封装方法

    2023-06-15 09:19:58
  • asp如何用通过Web访问OLAP数据?

    2010-06-16 09:52:00
  • python访问sqlserver示例

    2022-07-15 07:25:01
  • asp之家 网络编程 m.aspxhome.com