freebitcoinを複数アカウントで完全自動化で回すpythonコードとtadacoin自動化コード

new! selenium IDEを使って2captchaを使わずにfreebitcoinとtadacoinを自動化

2captchaを使わないのでコストは電気代のみになります。ただし、画像認証が出ないのが前提です。

tadacoin⇒30分待機⇒tadacoin⇒freebitcoin⇒30分待機という流れを指定回数繰り返します。(途中でgoogleのページを挟みますが、待機中のメモリ消費を節約するためです。)

まず、selenium IDEをダウンロード(クローム版fire fox版

次にこちらの設定ファイルをダウンロード。ダウンロードキーは111です。

selenium IDE で先ほどダウンロードしたファイルを「 Open an existing project 」をクリックして読み込む。

timesの数字が繰り返す回数です。自由に編集してください。

次は、使用するブラウザで両方のサイトにログインしておきます。こうする事で自動ログインが可能になります。

最後に、selenium IDEの再生ボタン(Run all tests)をクリックするとプログラムが動きます。

画像認証が出ない限りはこれでいけると思います。

freebitcoinの自動化

freebitcoin複数アカウントでの自動化pythonコードです。

事前準備として、

  • 複数のプロキシを準備
  • こちらの記事を参考にwebdriverにプロキシ設定とfreebitcoinのログイン情報を記憶させる
  • 2captchaへの登録と入金、APIキーの取得

をしておく必要があります。一度記憶させれば、自動的にプロキシ経由の接続になり、freebitcoinにも自動ログインが可能になります。

私はプログラマーとかエンジニアとかではないので結構無駄なコードもあると思いますのでご了承ください。

from selenium import webdriver
import time
import getpass # 実行ユーザーを取得するために使用
import requests
import json
from selenium.webdriver.support.ui import Select
import datetime
import pytz
import csv

btc=0
pr=0

def main1(local):
    global btc
    global pr
    
    options = webdriver.ChromeOptions()
    options.add_argument('--user-data-dir=' + local)
    driver= webdriver.Chrome("C:\dr\chromedriver.exe",options=options)

    driver.set_page_load_timeout(10)
    
    try:
        #指定したURLに遷移する
        driver.get("https://google.com")
        driver.get("https://freebitco.in/?op=home")
        driver.refresh()
        
        #10秒以内にページが完全にロードされた場合は以下を出力
        print("The page was loaded in time!")
    
    except:
        #ページが完全にロードされるまで10秒以上かかる場合は以下を出力
        print("erro")
        driver.quit()
    time.sleep(1)

    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
      
    def capt():
        # JSでtextareaタグのdisplay:noneを削除す
        driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="";')
        service_key = '2captchのAPIキー' # 2captcha service key 
        google_site_key = '6LeGfGIUAAAAAEyUovGUehv82L-IdNRusaYFEm5b' # reCAPTCHAのdata-sitekey
    
        pageurl = 'https://freebitco.in/?op=home' 
        url = "http://2captcha.com/in.php?key=" + service_key + "&method=userrecaptcha&googlekey=" + google_site_key + "&pageurl=" + pageurl 
    
        global resp
        resp = requests.get(url) 
        if resp.text[0:2] != 'OK': 
            quit('Service error. Error code:' + resp.text)
        
        global captcha_id
        captcha_id = resp.text[3:]
    
        print('キャプチャid:')
        print(captcha_id)
    
        fetch_url = "http://2captcha.com/res.php?key="+ service_key + "&action=get&id=" + captcha_id
 
        for i in range(1, 60):
            time.sleep(5) # wait 5 sec.
            resp = requests.get(fetch_url)
            if resp.text[0:2] == 'OK':
                break
        print('Google response token: ', resp.text[3:])
    
        # textareaにトークンを入力する
        driver.find_element_by_id('g-recaptcha-response').send_keys(resp.text[3:])
        driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="none";')
    
    def roll():
        try:
            cc=driver.find_element_by_link_text("Got it!")
            cc.click()
        except:
            print("cc無し")
        
        try:
            roll=driver.find_element_by_css_selector("#free_play_form_button")
            roll.click()
            print(local+" : ロール完了")
        except:
            print("エラー")
            

    er=0
    while er < 1:
        try:
            saku=driver.find_element_by_tag_name("h1")
            print(saku.text)
            er=er+1
        except:
            print("接続エラー")
    
    f=0
    try:
        time.sleep(1)
        cap=driver.find_element_by_id("play_without_captchas_button")
        cap.click()
        
        print("キャプチャ外し完了")
        time.sleep(1)
        
        kai=driver.find_element_by_css_selector(".play_without_captcha_description > p:nth-child(2)")
        print(kai.text)
        time.sleep(1)
        
        
        if "1" in kai.text:
            print("pr-1")
            f=1
            
        else:
            print("pr-2")
            caps=driver.find_element_by_id("play_with_captcha_button")
            time.sleep(1)
            caps.click()
            f=2
            time.sleep(1)
    except:
        try:
            roll()
        except:
            print(local+" : まだ時間じゃない")
            btc=0
            pr=0
        
    if f==1:
        try:
            roll()
            time.sleep(2)
        except:
            print("ロールクリックエラー")
        
        try:
            btcp=driver.find_element_by_id("winnings")
            btc=btcp.text
            print(str(btc)+" btc")
            prp=driver.find_element_by_id("fp_reward_points_won")
            pr=prp.text
            print(str(pr)+" PR")
        except:
            print("集計エラー")
            
        driver.refresh()
        
        print("結果確認")
        try:
            driver.find_element_by_id("play_without_captchas_button")
            print("エラー")
        except:
            print(local+" : ロールok")
            
    if f==2:
        print("2capへ")
        capt()
        roll()
        time.sleep(5)
        
        try:
            btcp=driver.find_element_by_id("winnings")
            btc=btcp.text
            print(str(btc)+" btc")
            
            prp=driver.find_element_by_id("fp_reward_points_won")
            pr=prp.text
            print(str(pr)+" PR")
        except:
            print("集計エラー")
        driver.refresh()
        print("2cap:結果確認")
        try:
            driver.find_element_by_id("play_without_captchas_button")
            print("エラー")
            url = "http://2captcha.com/res.php?key=2captchaのAPIキー&action=reportbad&id="+str(captcha_id)+"&json=1"
            e2c = requests.get(url)
            print (e2c.text)
            print("もう一回")
            time.sleep(5)
            
            aa=0
            while aa < 2:
                capt()
                roll()
                time.sleep(5)
                try:
                    btcp=driver.find_element_by_id("winnings")
                    btc=btcp.text
                    print(str(btc)+" btc")
                    prp=driver.find_element_by_id("fp_reward_points_won")
                    pr=prp.text
                    print(str(pr)+" PR")
                except:
                    print("集計エラー")
                
                driver.refresh()
                print("2cap:結果確認")
                
                try:
                    driver.find_element_by_id("play_without_captchas_button")
                    print("エラー")
                    url = "http://2captcha.com/res.php?key=2captchaのAPIキー&action=reportbad&id="+str(captcha_id)+"&json=1"
                    print(url)
                    e2c = requests.get(url)
                    print (e2c.text)
                    aa=aa+1
                    
                except:
                    print(local+" : 2cap:ok")
                    aa=aa+3
        except:
            print(local+" : 2cap:ok")
            
    time.sleep(3)
    driver.quit()
     
#すたーと
shu=0
user="UserDataのフォルダ名"
user2="UserDataのフォルダ名"

#12回繰り返す場合
shu=0
while shu < 12:
    if shu > 0:
        print("3570秒待機")
        time.sleep(3570)
    main1(user)
    main1(user2)

    
    now = datetime.datetime.now(pytz.timezone('Asia/Tokyo'))
    print(now)
    shu=shu+1

print("指定回数終了")

user=”UserDataのフォルダ名”の部分は作成したuserdateのファイル名を記入します。

4/26更新:tadacoin 自動化

事前準備

  • tadacoinへの登録・SMS認証の完了
  • 2captchaへの登録と入金・APIキーの入手
  • pythonでseleniumを使えるようにしておく

tadacoinはレベルを上げて1回0.3円以上獲得できる必要があります。

参考:

30分でpythonインストールからseleniumでブラウザ操作BOTを作成する方法を画像付きで解説[初心者向け]
30分でpython-anacondaをインストールして実行環境を構築してseleniumでブラウザ自動操作簡易BOTを作成する方法を紹介します。

twitterでログインする場合

以下のコードを実行して、ツイッターへのログイン、tadacoinへのログインを手動で行いログイン情報を記憶させる。

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=user')
driver = webdriver.Chrome("webdriverのパス",chrome_options=options)
driver.get("https://www.tadacoin.jp/login")

念のためseleniumで起動したchromeの言語を英語にしておきます。

ツイッターとtadacoinへのログイン、言語の変更が終わったらseleniumで起動させたブラウザを閉じます。

以下のコードが自動化のためのコードですので編集が必要な部分を編集して実行します。

from selenium import webdriver
import time
from selenium.webdriver.common.action_chains import ActionChains
import getpass # 実行ユーザーを取得するために使用
import requests
import json
from selenium.webdriver.support.ui import Select
import pytz
import sys

options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=user')

driver = webdriver.Chrome("webdriverのパス",chrome_options=options)

def capt(urls):
        # JSでtextareaタグのdisplay:noneを削除す
        driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="";')
        service_key = '2captchaのAPI' # 2captcha service key 
        google_site_key = '6Let8m0UAAAAABEWj_f9r_TEboq-fXx3znNoQJLL'# reCAPTCHAのdata-sitekey
    
        pageurl = urls 
        url = "http://2captcha.com/in.php?key=" + service_key + "&method=userrecaptcha&googlekey=" + google_site_key + "&pageurl=" + pageurl 
    
        global resp
        resp = requests.get(url) 
        if resp.text[0:2] != 'OK': 
            quit('Service error. Error code:' + resp.text)
        
        global captcha_id
        captcha_id = resp.text[3:]
    
        print('キャプチャid:')
        print(captcha_id)
    
        fetch_url = "http://2captcha.com/res.php?key="+ service_key + "&action=get&id=" + captcha_id
 
        for i in range(1, 60):
            time.sleep(5) # wait 5 sec.
            resp = requests.get(fetch_url)
            if resp.text[0:2] == 'OK':
                break
        print('Google response token: ', resp.text[3:])
    
        # textareaにトークンを入力する
        driver.find_element_by_id('g-recaptcha-response').send_keys(resp.text[3:])
        driver.execute_script('var element=document.getElementById("g-recaptcha-response"); element.style.display="none";')

driver.get("https://www.tadacoin.jp/login")

try:
    login=driver.find_element_by_class_name("user-form__tab-content-sns-login-twitter")
    login.click()
    time.sleep(5)
except:
    print("ログイン済み")

driver.get("https://www.tadacoin.jp/faucets")
a=0
f=0
#24回繰り返す場合
while a < 24:
    if a>0 and f==0:
        print("30分待機")
        time.sleep(1805)
        
    try:
        driver.refresh()
        time.sleep(2)
        try:
            close=driver.find_element_by_class_name("modal__close")
            close.click()
        except:
            print("close無し")
        
        print("login-ok")
               
        target = driver.find_element_by_class_name('faucet__receive-button')
        actions = ActionChains(driver)
        actions.move_to_element(target)
        actions.perform()
        print("移動-ok")
        
        capt("https://www.tadacoin.jp/faucets")
        time.sleep(1)
        target.click()
        print("BTC-ok")
        time.sleep(10)

        try:
            close2=driver.find_element_by_class_name("modal__close")
            close2.click()
        except:
            print("広告無し")
        
        try:
            kaku=driver.find_element_by_class_name("flash__alert")
            print(kaku.text)
            print("もう一回")
            f=1

        except:
            print("成功")
            a=a+1
            f=0     
    
    except:
        print("エラー")
        a=a+1
        
driver.quit()

編集する箇所は以下の部分です。

driver = webdriver.Chrome("webdriverのパス",chrome_options=options)
~~
service_key = '2captchaのAPI' # 2captcha service key 
~~
#24回繰り返す場合
while a < 24:
~~

丸1日自動化する場合は[while a < 48:]とします。