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

这个库的接口已经被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)


自动运行

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

点赞
  1. vjian说道:
    Google Chrome Windows 10
    运行出现错误 playwright._impl._api_types.TimeoutError: Timeout 30000ms exceeded. =========================== logs =========================== navigating to "https://www.epicgames.com/store/zh-CN/product/void-bastards/home", waiting until "load" ============================================================ Note: use DEBUG=pw:api environment variable and rerun to capture Playwright logs. PS D:\Study space\vs code>
  2. vjian说道:
    Google Chrome Windows 10
    运行出现了错误.. 发生错误,领取失败。。 Traceback (most recent call last): File "d:/Study space/vs code/Python/demo.py", line 47, in Run(playwright, val['username'], val['password']) File "d:/Study space/vs code/Python/demo.py", line 18, in Run bot.log_in(None, username, password) File "C:\Users\10503\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.7_qbz5n2kfra8p0\LocalCache\local-packages\Python37\site-packages\epic_games_bot.py", line 40, in log_in 第一次用python 没明白具体是什么意思 是因为有图形验证嘛?
    1. 小莫 小莫说道:
      Google Chrome Windows 10
      这个库的接口已经被epic禁了,库也下架了
  3. Nolovenodie丶说道:
    Google Chrome Windows 7
    弄到了Github上Actions自动部署,定时自动领,又整了个Qmsg消息推送。打完收工
  4. cruii说道:
    Google Chrome Mac OS X 10.15.7
    运行出现错误 urllib3.exceptions.SSLError: Can't connect to HTTPS URL because the SSL module is not available
    1. 小莫 小莫说道:
      Google Chrome Windows 10
      Linux服务器需要安装控件
      yum -y install libappindicator-gtk3
      yum -y install liberation-fonts
  5. 匿名说道:
    Google Chrome Windows 10
    最后注册个企业微信账号,领取成功后推送到自己手机微信。 打完收工

发表评论

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