【Python】自动白嫖EPIC游戏脚本 支持多账号

前言

昨天,一只萝莉过来跟我说,明天(也就是今天)可以白嫖“战争游戏:红龙”,
我好奇的问了一句:“在哪?”
她告诉我是“EPIC”。
我才想起来,好像EPIC每周都可以白嫖游戏来着,但我又懒得去登录Epic;
那么,有没有一个可以直接不用登录也可以领取游戏的工具呢?
用万能的Google搜了一圈,找到了GitHub上大佬的开源项目:EpicGames Freebies Claimer

正当我高兴的时候,突然看到是 Node.js 编译的,突然想起曾经被Node.js支配的恐惧(我用Node.js的东西就从来没编译成功过,我也不知道为什么,就总是报错)。

那么我比较熟悉又简单的python有没有相似的东西呢?

我又缩小范围搜了一下,诶?还真有:epic-games-bot

安装依赖

python版本要求 >=3.7 因为playwright只支持3.7以上的版本
安装epic-games-bot

pip3.7 install epic-games-bot
或
pip3.7 install -i https://mirrors.aliyun.com/pypi/simple epic-games-bot

为 playwright 安装浏览器:

python  -m playwright install

如果是在Linux服务器中运行,可能还需要安装浏览器支持控件:

yum -y install libappindicator-gtk3
yum -y install liberation-fonts

脚本代码

其实,作者的示例代码基本已经写的差不多了,我只是在这基础上增加多账号支持而已:

# coding=utf-8
import json
import time
from epic_games_bot import EpicGamesBot
from pathlib import Path
from playwright.sync_api import sync_playwright


def Run(Playwright, username, password):
    cookies_path = Path("cookies.json")
    browser = None
    print("初始化完成")
    try:
        browser = Playwright.firefox.launch()
        page = browser.new_page()
        bot = EpicGamesBot(page)
        print("正在登录。。。")
        bot.log_in(None, username, password)
        print("登录成功!")
        purchased_offer_urls = bot.purchase_free_promotional_offers()
        [print(url) for url in purchased_offer_urls]
        cookies_path.write_text(json.dumps(bot.cookies))
        print("{name} 领取完成".format(name=username))
        browser.close()
    except Exception:
        if browser:
            browser.close()
            print("发生错误,领取失败")
        raise


if __name__ == '__main__':
    CA = EpicGamesBot.list_free_promotional_offers()  # 免费游戏列表
    print(CA)
    # 用户列表
    userList = [
        {
            'username': '你的EPIC账号1',
            'password': '你的EPIC密码1'
        },
        {
            'username': '你的EPIC账号2',
            'password': '你的EPIC密码2'
        }
    ]
    for val in userList:
        with sync_playwright() as playwright:
            Run(playwright, val['username'], val['password'])
        # 休息20秒再登录下一个账号 防止被K
        time.sleep(20)


自动运行

最后,把脚本放到服务器,定时每周五运行即可,然后就等着白嫖吧

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注