From bd8317a1b1db3d44a86e7797532229597ff4a0d7 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Sun, 8 Jan 2023 11:31:32 +0800 Subject: [PATCH] =?UTF-8?q?1.=20filelist=E8=AE=BE=E7=BD=AEcookie=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=9C=89=E6=95=88=E6=9C=9F30=E5=88=86=E9=92=9F?= =?UTF-8?q?=EF=BC=8C=E5=85=B7=E4=BD=93=E6=97=B6=E9=95=BF=E5=BE=85=E6=B5=8B?= =?UTF-8?q?=E8=AF=95,=E8=B6=85=E5=87=BA=E6=97=B6=E9=95=BF=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E9=87=8D=E6=96=B0=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pt_site/UtilityTool.py | 77 +++++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 34 deletions(-) diff --git a/pt_site/UtilityTool.py b/pt_site/UtilityTool.py index ce128b0..1ed3324 100644 --- a/pt_site/UtilityTool.py +++ b/pt_site/UtilityTool.py @@ -8,7 +8,7 @@ import ssl import threading import time import traceback -from datetime import datetime +from datetime import datetime, timedelta from urllib.request import urlopen import aip @@ -1481,38 +1481,44 @@ class PtSpider: # leeching_detail_url = site.url + site.page_leeching.lstrip('/').format(my_site.user_id) try: if site.url in ['https://filelist.io/']: - session = requests.Session() - headers = { - 'user-agent': my_site.user_agent - } - res = session.get(url=site.url, headers=headers) - validator = ''.join(self.parse(res, '//input[@name="validator"]/@value')) - login_url = ''.join(self.parse(res, '//form/@action')) - login_method = ''.join(self.parse(res, '//form/@method')) - with open('db/ptools.toml', 'r') as f: - data = toml.load(f) - filelist = data.get('filelist') - username = filelist.get('username') - password = filelist.get('password') - login_res = session.request( - url=site.url + login_url, - method=login_method, - headers=headers, - data={ - 'validator': validator, - 'username': username, - 'password': password, - 'unlock': 0, - 'returnto': '', - }) - cookies = '' - logger.info(f'res: {login_res.text}') + if my_site.expires > datetime.now(): + pass + else: + logger.info(f'{site.name} cookie 已过期,重新获取!') + session = requests.Session() + headers = { + 'user-agent': my_site.user_agent + } + res = session.get(url=site.url, headers=headers) + validator = ''.join(self.parse(res, '//input[@name="validator"]/@value')) + login_url = ''.join(self.parse(res, '//form/@action')) + login_method = ''.join(self.parse(res, '//form/@method')) + with open('db/ptools.toml', 'r') as f: + data = toml.load(f) + filelist = data.get('filelist') + username = filelist.get('username') + password = filelist.get('password') + login_res = session.request( + url=site.url + login_url, + method=login_method, + headers=headers, + data={ + 'validator': validator, + 'username': username, + 'password': password, + 'unlock': 0, + 'returnto': '', + }) + cookies = '' + logger.info(f'res: {login_res.text}') + logger.info(f'cookies: {session.cookies.get_dict()}') + # expires = [cookie for cookie in session.cookies if not cookie.expires] - logger.info(f'cookies: {session.cookies.get_dict()}') - for key, value in session.cookies.get_dict().items(): - cookies += f'{key}={value};' - my_site.cookie = cookies - my_site.save() + for key, value in session.cookies.get_dict().items(): + cookies += f'{key}={value};' + my_site.expires = datetime.now() + timedelta(minutes=30) + my_site.cookie = cookies + my_site.save() # 发送请求,做种信息与正在下载信息,个人主页 if site.url in [ 'https://hdchina.org/', @@ -2175,6 +2181,7 @@ class PtSpider: # 检查邮件 mail_check = len(details_html.xpath(site.mailbox_rule)) notice_check = len(details_html.xpath(site.notice_rule)) + logger.info(f'公告:{notice_check} 短消息:{mail_check}') if mail_check > 0 or notice_check > 0: if site.url in [ 'https://monikadesign.uk/', @@ -2196,6 +2203,7 @@ class PtSpider: mail_list = [] message_list = '' if notice_count > 0: + print(f'FileList 公告') notice_res = self.send_request(my_site, url=site.url) logger.info(f'公告信息:{notice_res}') notice_list = self.parse(notice_res, site.notice_title) @@ -2206,10 +2214,11 @@ class PtSpider: message_list += f'## 公告 \n### {notice}' time.sleep(1) if mail_count > 0: + print(f'FileList 消息') message_res = self.send_request(my_site, url=site.url + site.page_message) logger.info(f'PM消息页面:{message_res}') mail_list = self.parse(message_res, site.message_title) - mail_list = [mail.strip() for mail in mail_list] + mail_list = [f'{mail.strip()} ...' for mail in mail_list] logger.info(mail_list) mail = " \n\n> ".join(mail_list) logger.info(mail) @@ -2335,7 +2344,7 @@ class PtSpider: ) """ # response = converter.convert(response.content) - logger.info('时魔响应:{}'.format(response.content)) + # logger.info('时魔响应:{}'.format(response.content)) # logger.info('转为简体的时魔页面:', str(res)) # res_list = self.parse(res, site.hour_sp_rule) res_list = etree.HTML(response.content).xpath(site.hour_sp_rule)