RateSetter 是一家提供基於點對點借貸的儲蓄帳戶的新創公司。但是,他們遇到了經濟困難,現在你無法提取你的錢;有一個排隊系統。
可以理解的是,日常投資者並不高興。
您希望從您的 RateSetter 帳戶中提取盡可能多的資金,但由於他們的排隊系統,您無法提取資金。你要求“釋放資金”,但前面有成千上萬的人。您確實需要盡快提取一些錢。或者,您擔心公司會倒閉,所以您寧願拿回您的錢!
「投資人取得資金所需的時間比平常更長」 …可能需要幾個月的時間! ?
目標是定期檢查您的 RateSetter 帳戶,並經常提取少量資金。
運行腳本大約兩週後,機器人進行了 40 次提款。大多數提款都接近最低金額(約 2 英鎊),但我們有一次提款約為 7,900 英鎊。另外兩個超過100英鎊。
由於 RateSetter 的工作方式,資金經常在帳戶之間流動。
您的「貸款」金額會定期變動。
關鍵見解/漏洞:如果幾英鎊暫時存在“持有帳戶”或“市場上”,我們可以立即提取這筆錢。通常情況下,這個金額很小,例如幾磅——但似乎有所不同。
經常登入 RateSetter 來檢查這裡是否有 2 英鎊或那裡是否有 5 英鎊可以提取,幾乎不值得。如果我們不登錄,錢很快就會再藉出。
這就是機器人的全部要點:立即發現有幾英鎊沒有“借出”,並在它們與另一個借款人聯繫之前將其提取。
如果有資金暫時處於「持有」或「市場」狀態:機器人將自動為您點擊「提款」按鈕,然後在下一個畫面上輸入可能的最大金額。 (實際上,它會輸入比最大金額少幾美分的金額 - 請參閱下面的「識別提款」部分。)最後,每次提款時,機器人都會向您發送一封電子郵件以確認。
機器人應該繼續在您的電腦上運行,花費一分鐘左右的時間完成一個點擊週期。在周期結束時,它會返回「概述」頁面,以檢查是否有任何變更。它檢查並可以從所有帳戶(例如您的“日常”帳戶和“ISA”帳戶)中提款。
為了避免因大量小額(約 2 英鎊)提款而淹沒您的銀行對賬單而不知所措/困惑,機器人將設置與提款數量相匹配的便士數量。
例如,如果 25.40 英鎊可供提取,而機器人希望提款編號為 12,則只能提取 25.12 英鎊,而不是可用的全部 25.40 英鎊。
下一次,機器人將提取 £xx.13。
這應該可以更輕鬆地識別您銀行帳戶的提款金額。
根據我使用該機器人的經驗,前 25 筆提款中的大部分金額約為 2 英鎊。一份大約200英鎊。然後一個是〜7,900英鎊。 Boom,該機器人的有效性已經得到驗證 - 這立即被撤回。
如果您只想在有大量資金可供提取時查看,則應該調整config.py
中的MIN_PAYOUT
值。
如果MIN_PAYOUT = 1.00
,那麼您的提款額可以低至 £1.01、£1.02、£1.03 等。
因為便士數量與提款數量相匹配,如果MIN_PAYOUT = 2.00
,並且我們的付款數量為 12,但只有 2.05 英鎊可提款,則不會進行提款。 (至少需要有 2.12 英鎊可用於提取。)
我建議開始時將MIN_PAYOUT
保持在較低水平(例如 1.00)(這樣您就會看到機器人盡可能活躍)。然後,如果小額提款金額令人煩惱,您可以增加此閾值(例如,增加到 20)。不,如果您對 config.py 進行任何更改,您需要停止機器人並重新啟動機器人,以使更改生效。
啟用“開發”選單。
(如果您在選單列中沒有看到“開發”選單,請選取“Safari”>“偏好設定”,點選“進階”,然後選擇“在選單列中顯示“開發”選單”。)
在「開發」功能表中,按一下「允許遠端自動化」。
該腳本(Selenium)適用於 Chrome、Firefox、Safari(或其他)。 Safari 的優點是 Mac 上預先安裝了網路驅動程式。但為其他瀏覽器預先安裝 Selenium 驅動程式也非常容易。
如果您使用的是 Safari 以外的任何其他瀏覽器:請按照 selenium 文件下載適合您首選瀏覽器的驅動程式。
https://selenium-python.readthedocs.io/installation.html#drivers
# Example using Chrome
from selenium import webdriver
from selenium . webdriver . chrome . options import Options
chrome_options = Options ()
# chrome_options.add_argument('--headless')
# --headles makes actions invisible
# without --headless, I can follow the script's progress
chrome_options . add_argument ( '--no-sandbox' )
# chrome_options.add_argument('--disable-dev-shm-usage')
browser = webdriver . Chrome ( '/usr/local/bin/chromedriver' , options = chrome_options )
# put path to executable chromedriver as first argument (wherever you downloaded it)
就我個人而言,我更喜歡使用 Chrome,因為它不那麼煩躁(例如,縮小或重新調整視窗大小)。
在終端機中執行以下命令:
使用python 3建立虛擬環境
virtualenv rsbot -p python3
cd rsbot
. bin/activate
將程式碼下載到您的計算機
git clone https://github.com/markitics/ratesetter-withdraw-bot
安裝依賴項
cd ratesetter-withdraw-bot
pip install -r requirements.txt
(我憑記憶輸入此內容 - 您可能需要向上/向下移動資料夾才能將requirements.txt正確安裝到虛擬環境中。)
您必須個性化:
SEND_EMAILS
設定為False
以不處理電子郵件。當腳本運行時,每次嘗試都會列印輸出,因此如果您願意,您實際上並不需要電子郵件。您可以選擇個人化:
您必須建立一個名為 config.py 的新文件
在 config.example.py 旁邊建立一個新檔案 config.py。也就是說,新檔案應該與 config.example.py 位於同一目錄中
在此輸入您自己的電子郵件和密碼。保持 config.example.py 不變,以供參考。
不要被嚇倒!
如果您不需要電子郵件警報, config.py
就夠簡單:
# RateSetter login details
LOGIN_URL = 'https://members.ratesetter.com/login.aspx'
RS_PASSWORD = 'ratesetterpass123'
RS_EMAIL , NEXT_PAYOUT_NUMBER = '[email protected]' , 1
# RateSetter thresholds
OVERVIEW_URL = 'https://members.ratesetter.com/overview.aspx#'
MIN_PAYOUT = 1.00 # If set to 4.00, min payout is 4.00 + payout_number in pennies
# Reminder: if there's 1.25 available, MIN_PAYOUT 1.00, but we're on payout number 30: no money will be withdrawn.
NUMBER_OF_ACCOUNTS = 2 # e.g., ISA and Everyday
WAIT_SECONDS = 30 # between page loads / clicks
# remember with wait_approx, this is +/- 20%
# Email settings
SEND_EMAILS = False
如果您確實需要電子郵件警報,則完成的config.py
檔案將如下所示:
# config.py
# RateSetter login details
LOGIN_URL = 'https://members.ratesetter.com/login.aspx'
RS_PASSWORD = 'ratesetterpass123'
RS_EMAIL , NEXT_PAYOUT_NUMBER = '[email protected]' , 1 # adjust payout number if you re-start the bot
# RateSetter thresholds
# WITHDRAW_URL = 'https://members.ratesetter.com/your_lending/payments/one_off_withdraw.aspx'
OVERVIEW_URL = 'https://members.ratesetter.com/overview.aspx#'
MIN_PAYOUT = 1.00 # If set to 4.00, min payout is 4.00 + payout_number in pennies
# Reminder: if there's 1.25 available, MIN_PAYOUT 1.00, but we're on payout number 30: no money will be withdrawn.
NUMBER_OF_ACCOUNTS = 2 # e.g. one Everyday and one ISA account = 2 accounts
WAIT_SECONDS = 30 # between page loads / clicks
# remember with wait_approx, this is +/- 20%
SEND_EMAILS = True # set to False (capital F) if you'd like to skip everything below this line
EMAIL_EVERY_N_ATTEMPTS = 200 # Send email regardless of success/fail, so we know bot is still running
# WEBMASTER_EMAIL will receive these alerts
# Email settings
# Email login: for the email that will send you alerts (e.g., gmail)
EMAIL_HOST = "smtp.gmail.com"
EMAIL_USER = '[email protected]' # might be the same as RS_EMAIL, but might be different
EMAIL_PASSWORD = "gmailpass456"
EMAIL_USE_SSL = False # if using port 465
EMAIL_PORT = 587 # trying to use TLS
EMAIL_USE_TLS = True # if using port 587
# Note, in order to use your own gmail, you must first allow "insecure apps":
# https://myaccount.google.com/lesssecureapps
# Otherwise the bot's login attempt will fail.
# If you have two-factor authentication set up for Google, this won't work.
# Once you start the bot, check your spam folder. (In gmail, for 'in:spam'.)
# Gmail can see that emails are being sent by a bot, and they look repetitive...
# ...so there's a decent chance your emails will wind up in spam.
# Email alert details - option 1: You're running this script on behalf of a friend
SENDER = "RateSetterBot <%s>" % EMAIL_USER
ACCOUNT_OWNER_EMAIL = RS_EMAIL . replace ( '@' , '+rsalert@' )
# Who should receive the alert emails?
# WEBMASTER_EMAIL will receive the alerts, "Bot ran into a problem" and periodically, "Bot is still running"
# ACCOUNT_OWNER_EMAIL will receive emails, "Successful withdrawal has been made"
# Email alert details - option 1: You're running this script for yourself
WEBMASTER_EMAIL = ACCOUNT_OWNER_EMAIL # notified when script hits an error, and occasional
ALL_EMAIL_RECIPIENTS = ACCOUNT_OWNER_EMAIL
# Email alert details - option 2: You're running this script on behalf of a friend
WEBMASTER_EMAIL = "Mark <[email protected]>"
ALL_EMAIL_RECIPIENTS = ', ' . join ([ WEBMASTER_EMAIL , ACCOUNT_OWNER_EMAIL ])
誰應該收到警報電子郵件?
WEBMASTER_EMAIL
將收到警報“機器人遇到問題”,並定期收到“機器人仍在運行” ACCOUNT_OWNER_EMAIL
將收到電子郵件“已成功提款”
從config.py
中刪除(或註解掉)選項 1 或選項 2
# Email alert details - option 1: You're running this script for yourself
WEBMASTER_EMAIL = ACCOUNT_OWNER_EMAIL # notified when script hits an error, and occasional
ALL_EMAIL_RECIPIENTS = ACCOUNT_OWNER_EMAIL
# Email alert details - option 2: You're running this script on behalf of a friend
WEBMASTER_EMAIL = "Mark <[email protected]>"
ALL_EMAIL_RECIPIENTS = ', '.join([WEBMASTER_EMAIL, ACCOUNT_OWNER_EMAIL])
每天您想要開始編寫程式碼時,您必須先執行. bin/activate
在啟動 python shell 之前啟動虛擬 python 環境。
如果您位於rs-withdraw-bot
資料夾中,則命令為:
. ../bin/activate # .. goes up to parent folder
打開Python外殼
python
在 python shell 中,
>>> from withdraw import keep_trying
不要複製貼上>>>
– 這只是您處於「python shell」中的視覺線索。
現在應該會啟動 Safari(或 Chrome)視窗。如果 Safari 看起來已準備好被控制,請繼續執行 master 指令來啟動機器人:
>>> keep_trying() # will send confirmation email once it starts up
或者
>>> keep_trying(initial_email=False) # default is True
如果initial_email=True
,它會在 1 次嘗試後向您發送電子郵件,以便您可以檢查電子郵件是否正確發送。
預設情況下,為了確認它沒有崩潰,機器人會每 200 次嘗試(每EMAIL_EVERY_N_ATTEMPTS
次嘗試)再次向您發送電子郵件 – 只是為了讓您知道它還活著並且正在工作。您可以在config.py
中更改此設定。
也許您關閉了計算機,或者需要重新啟動機器人。
在這種情況下,請調整config.py
中的NEXT_PAYOUT_NUMBER
以符合下一個付款號碼。
支出編號為 1、2、3 等。
付款金額有相應的便士數量,以便更輕鬆地在銀行對帳單上識別提款。
例如,前幾次提款可能是:29.01英鎊、2.02英鎊、14.03英鎊、210.04英鎊等。
如果您在提款編號 4 後重新啟動機器人,則應在config.py
中設定NEXT_PAYOUT_NUMBER = 5
。那麼下一次提款金額將為 £XX.05。
您應該設定一個過濾器,以便警報電子郵件不會成為垃圾郵件。
https://www.jotform.com/help/404-how-to-prevent-emails-from-landing-in-gmail-s-spam-folder
很容易讓兩個單獨的 Chrome 視窗由兩個單獨的機器人控制。
開始第一個,然後開啟一個新的終端機視窗。
調整config.py
中的登入詳細資訊以反映第二個帳戶:
RS_PASSWORD='ratesetterpass321'
RS_EMAIL, NEXT_PAYOUT_NUMBER = '[email protected]', 1
# Adjust payout number (from 1 to a higher number) if you re-start the bot, to match next withdrawal number
在執行python
命令之前儲存對配置的變更。
[email protected]
推特@MbyM
這是一個特別有趣的項目,我第一次使用 Selenium。我不打算維持這一點或為陌生人提供支持。
不得用於商業用途。
不要縮短“等待”時間;請勿濫用 RateSetter 網站。實際上,RateSetter 服務條款可能禁止執行該腳本 - 請自行檢查。
任何對Python有粗略了解的朋友應該能夠幫助你讓這個腳本在你的電腦上運行。他們甚至可能會改進它——這已經是非常粗糙的了!
CC-BY-NC – 不得用於商業用途。