Compare commits
3 Commits
ca54d390a4
...
9e8d970dbf
Author | SHA1 | Date |
---|---|---|
|
9e8d970dbf | |
|
cddda7dbb7 | |
|
06f7198ed9 |
|
@ -1,2 +1,3 @@
|
|||
.env
|
||||
__pycache__
|
||||
__pycache__
|
||||
nohup.out
|
||||
|
|
37
app/main.py
37
app/main.py
|
@ -5,7 +5,7 @@ from selenium.webdriver.common.by import By
|
|||
from selenium.webdriver.support.ui import WebDriverWait
|
||||
from selenium.webdriver.support import expected_conditions as EC
|
||||
from selenium.webdriver.common.keys import Keys
|
||||
import time,os
|
||||
import time,os,random
|
||||
|
||||
import r_kuji
|
||||
|
||||
|
@ -13,6 +13,7 @@ import r_kuji
|
|||
profile_dir = "/tmp/profile"
|
||||
username = os.environ["RAKUTENID"]
|
||||
password = os.environ["RAKUTENPW"]
|
||||
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57"
|
||||
rch_time = int(os.environ["RCH_WATCH_TIME"])
|
||||
rch_num = int(os.environ["RCH_WATCH_NUM"])
|
||||
target_url = "https://channel.rakuten.co.jp/"
|
||||
|
@ -30,6 +31,7 @@ def gen_driver():
|
|||
options = webdriver.ChromeOptions()
|
||||
options.add_argument("--window-size=1920,1080")
|
||||
options.add_argument("--user-data-dir=" + profile_dir )
|
||||
options.add_argument('--user-agent=' + user_agent )
|
||||
|
||||
driver = webdriver.Remote(
|
||||
command_executor="http://selenium:4444/wd/hub",
|
||||
|
@ -101,25 +103,38 @@ def watching_rch():
|
|||
element = wait.until(EC.presence_of_element_located((By.TAG_NAME, 'body')))
|
||||
|
||||
for i in range(0, rch_num):
|
||||
# 30秒待機
|
||||
time.sleep(30)
|
||||
# 30秒~150秒待機
|
||||
random_seconds = random.randint(30, 150)
|
||||
time.sleep(random_seconds)
|
||||
|
||||
print( str( i + 1) + "番目のチャンネルの視聴を始めます。視聴時間は" + str(rch_time) + "秒に設定されています。")
|
||||
driver.save_screenshot('./ss/watching.png')
|
||||
print( "Rチャンネル:" + str( i + 1) + "番目のチャンネルの視聴を始めます。視聴時間は" + str(rch_time) + "秒に設定されています。")
|
||||
|
||||
try:
|
||||
channel_btns = driver.find_elements(By.CSS_SELECTOR, channel_btn_css)
|
||||
channel_btn = channel_btns[i]
|
||||
channel_btn.click()
|
||||
except:
|
||||
print("チャンネルが選択できませんでした。")
|
||||
driver.save_screenshot('./ss/error.png')
|
||||
print("Rチャンネル:チャンネルが選択できませんでした。")
|
||||
try:
|
||||
driver.save_screenshot('./ss/error.png')
|
||||
except:
|
||||
print("Rチャンネル:スクリーンショットの保存でエラーが発生しました。")
|
||||
|
||||
time.sleep(rch_time)
|
||||
|
||||
now_time = time.time()
|
||||
end_time = now_time + rch_time
|
||||
|
||||
while time.time() <= end_time:
|
||||
try:
|
||||
driver.save_screenshot('./ss/watching.png')
|
||||
except:
|
||||
print("Rチャンネル:スクリーンショットの保存でエラーが発生しました。")
|
||||
time.sleep(30)
|
||||
|
||||
try:
|
||||
driver.refresh()
|
||||
except:
|
||||
print("ページの更新に失敗しました。")
|
||||
print("Rチャンネル:ページの更新に失敗しました。")
|
||||
|
||||
driver.quit()
|
||||
|
||||
|
@ -128,7 +143,9 @@ def main():
|
|||
watching_rch()
|
||||
|
||||
if __name__ == '__main__':
|
||||
time.sleep(60) # selniumコンテナの起動を待つ待機
|
||||
# 60-900秒待機 (毎日同時刻にアクセスすることを回避)
|
||||
random_seconds = random.randint(60, 900)
|
||||
time.sleep(random_seconds) # selniumコンテナの起動を待つ待機
|
||||
main()
|
||||
try:
|
||||
r_kuji.rkuji()
|
||||
|
|
Loading…
Reference in New Issue