fix SiteParser close session

This commit is contained in:
jxxghp
2025-06-27 08:38:02 +08:00
parent d8a53da8ee
commit 0baf6e5fe7
+56 -44
View File
@@ -156,53 +156,57 @@ class SiteParserBase(metaclass=ABCMeta):
解析站点信息 解析站点信息
:return: :return:
""" """
# Cookie模式时,获取站点首页html try:
if self.request_mode == "apikey": # Cookie模式时,获取站点首页html
if not self.apikey and not self.token: if self.request_mode == "apikey":
logger.warn(f"{self._site_name} 未设置cookie 或 apikey/token,跳过后续操作") if not self.apikey and not self.token:
return logger.warn(f"{self._site_name} 未设置cookie 或 apikey/token,跳过后续操作")
self._index_html = {} return
else: self._index_html = {}
# 检查是否已经登录 else:
self._index_html = self._get_page_content(url=self._site_url) # 检查是否已经登录
if not self._parse_logged_in(self._index_html): self._index_html = self._get_page_content(url=self._site_url)
return if not self._parse_logged_in(self._index_html):
# 解析站点页面 return
self._parse_site_page(self._index_html) # 解析站点页面
# 解析用户基础信息 self._parse_site_page(self._index_html)
if self._user_basic_page: # 解析用户基础信息
self._parse_user_base_info( if self._user_basic_page:
self._get_page_content( self._parse_user_base_info(
url=urljoin(self._base_url, self._user_basic_page), self._get_page_content(
params=self._user_basic_params, url=urljoin(self._base_url, self._user_basic_page),
headers=self._user_basic_headers params=self._user_basic_params,
headers=self._user_basic_headers
)
) )
) else:
else: self._parse_user_base_info(self._index_html)
self._parse_user_base_info(self._index_html) # 解析用户详细信息
# 解析用户详细信息 if self._user_detail_page:
if self._user_detail_page: self._parse_user_detail_info(
self._parse_user_detail_info( self._get_page_content(
self._get_page_content( url=urljoin(self._base_url, self._user_detail_page),
url=urljoin(self._base_url, self._user_detail_page), params=self._user_detail_params,
params=self._user_detail_params, headers=self._user_detail_headers
headers=self._user_detail_headers )
) )
) # 解析用户未读消息
# 解析用户未读消息 if settings.SITE_MESSAGE:
if settings.SITE_MESSAGE: self._pase_unread_msgs()
self._pase_unread_msgs() # 解析用户上传、下载、分享率等信息
# 解析用户上传、下载、分享率等信息 if self._user_traffic_page:
if self._user_traffic_page: self._parse_user_traffic_info(
self._parse_user_traffic_info( self._get_page_content(
self._get_page_content( url=urljoin(self._base_url, self._user_traffic_page),
url=urljoin(self._base_url, self._user_traffic_page), params=self._user_traffic_params,
params=self._user_traffic_params, headers=self._user_traffic_headers
headers=self._user_traffic_headers )
) )
) # 解析用户做种信息
# 解析用户做种信息 self._parse_seeding_pages()
self._parse_seeding_pages() finally:
# 关闭连接
self.close()
def _pase_unread_msgs(self): def _pase_unread_msgs(self):
""" """
@@ -430,6 +434,14 @@ class SiteParserBase(metaclass=ABCMeta):
""" """
pass pass
def close(self):
"""
关闭会话
"""
if self._session:
self._session.close()
self._session = None
def to_dict(self): def to_dict(self):
""" """
转化为字典 转化为字典