From 86a5aa055bd017eb22061ae1c726e43b4123f908 Mon Sep 17 00:00:00 2001 From: Ching Date: Fri, 11 Jun 2021 11:26:51 +0800 Subject: [PATCH] [M]use usable proxy until it become unusable --- jandan_toot.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/jandan_toot.py b/jandan_toot.py index d409ff4..8aa34b5 100644 --- a/jandan_toot.py +++ b/jandan_toot.py @@ -52,22 +52,30 @@ session = requests.session() def get_proxy(): return requests.get("http://118.24.52.95:5010/get/?type=https").json() +usable_proxy = None + def toot(proxy=None): jandan_pic_url = 'https://jandan.net/pic' page_count = 2 status_list = [] id_list = load_id() + global usable_proxy if not id_list: id_list = [] session.headers.update(ramdom_ua()) - session.proxies.update({"https": "https://{}".format(proxy)}) + if proxy: + session.proxies.update({"https": "https://{}".format(proxy)}) while page_count and jandan_pic_url: resp = session.get(jandan_pic_url, timeout=2) if resp.status_code != 200: + usable_proxy = None + if resp.status_code == 403: + raise ValueError('http status code 403') time.sleep(10) continue + usable_proxy = proxy soup = BeautifulSoup(resp.content, 'html.parser') jandan_pic_url = soup.find(class_='previous-comment-page')['href'] page_count -= 1 @@ -134,8 +142,10 @@ def toot(proxy=None): while True: try: logger.info('%s !!!! start', time.asctime()) - proxy = get_proxy() - toot(proxy=proxy['proxy']) + if not usable_proxy: + proxy = get_proxy() + usable_proxy = proxy.get('proxy') + toot(proxy=usable_proxy) time.sleep(20) except Exception as ex: logger.error(traceback.format_exc())