[O] Encapsulate

This commit is contained in:
Hykilpikonna
2022-03-02 23:29:25 -05:00
parent 622f003ec0
commit e0e4c6691c
3 changed files with 21 additions and 25 deletions
+3 -13
View File
@@ -1,14 +1,13 @@
import os import os
import re
import time import time
import traceback
import requests import requests
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver import Chrome from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from utils import parse_retry
# Config # Config
# Telegram chat ID that receives update messages (could be a channel in @channel_id format) # Telegram chat ID that receives update messages (could be a channel in @channel_id format)
# TG_RECEIVER = 1770239825 # TG_RECEIVER = 1770239825
@@ -78,18 +77,9 @@ if __name__ == '__main__':
# parse_page(browser) # parse_page(browser)
# browser.close() # browser.close()
def parse(tries: int = 0):
try:
parse_page(browser)
except StaleElementReferenceException:
if tries < 3:
parse(tries + 1)
except Exception as e:
traceback.print_exc()
# Refresh indefinitely # Refresh indefinitely
while True: while True:
time.sleep(5) time.sleep(5)
parse() parse_retry(parse_page, browser)
browser.refresh() browser.refresh()
time.sleep(2) time.sleep(2)
+3 -12
View File
@@ -1,14 +1,14 @@
import os import os
import re import re
import time import time
import traceback
import requests import requests
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver import Chrome from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By from selenium.webdriver.common.by import By
from utils import parse_retry
# Config # Config
# Price increase ratio threshold (ignore everything higher than this ratio) # Price increase ratio threshold (ignore everything higher than this ratio)
INCR_MAX = 0.2 INCR_MAX = 0.2
@@ -120,18 +120,9 @@ if __name__ == '__main__':
# parse_page(browser) # parse_page(browser)
# browser.close() # browser.close()
def parse(tries: int = 0):
try:
parse_page(browser)
except StaleElementReferenceException:
if tries < 3:
parse(tries + 1)
except Exception as e:
traceback.print_exc()
# Refresh indefinitely # Refresh indefinitely
while True: while True:
time.sleep(5) time.sleep(5)
parse() parse_retry(parse_page, browser)
browser.refresh() browser.refresh()
time.sleep(2) time.sleep(2)
+15
View File
@@ -0,0 +1,15 @@
import traceback
from typing import Callable
from selenium.common.exceptions import StaleElementReferenceException
from selenium.webdriver.chrome.webdriver import WebDriver
def parse_retry(parser: Callable, browser: WebDriver, tries: int = 0):
try:
parser(browser)
except StaleElementReferenceException:
if tries < 3:
parse_retry(parser, browser, tries + 1)
except Exception as e:
traceback.print_exc()