1. filelist设置cookie默认有效期30分钟,具体时长待测试,超出时长自动重新获取

This commit is contained in:
ngfchl
2023-01-08 11:31:32 +08:00
parent e6eeb51d42
commit bd8317a1b1

View File

@@ -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)