import peter

This commit is contained in:
konjacpotato
2025-11-12 20:42:16 +08:00
commit 8c1a740f0b
147 changed files with 2763 additions and 0 deletions

View File

Binary file not shown.

Binary file not shown.

Binary file not shown.

46
seek/focus_cn/content.py Normal file
View File

@ -0,0 +1,46 @@
import datetime
from DrissionPage.errors import ElementNotFoundError
from database.tinformationsource.model import TInformationSource
from database.tnews.model import TNews
from log.log_manager import logger
from seek.content_base import ContentBase
class ArticleContent(ContentBase):
def __init__(self, news: TNews):
news.is_static = True
super().__init__(news)
def get_content(self):
try:
content_ = self.session.s_ele('.article').text
except ElementNotFoundError:
content_ = 'not found element'
return content_
def get_content(information_source: TInformationSource) -> list:
article_content = ArticleContent(information_source)
result = article_content.get_content()
article_content.finish()
return result
def content_task(news: TNews):
logger.info(f'{news.title} news_task start execute at {datetime.datetime.now()}', )
ofweek_com_ai = ArticleContent(news)
ofweek_com_ai.do_seek_task()
ofweek_com_ai.finish()
logger.info(f'{news.title} news_task end execute at {datetime.datetime.now()}')
if __name__ == '__main__':
logger.info('This module is not for direct call!')
news_ = TNews()
news_.is_static = True
news_.url = 'https://www.focus.cn/a/842171870_124752'
content = get_content(news_)
logger.info(content)
logger.info('Done.')

62
seek/focus_cn/house.py Normal file
View File

@ -0,0 +1,62 @@
import datetime
from DrissionPage.errors import ElementNotFoundError
from database.tinformationsource.model import TInformationSource
from database.tnews.model import TNews
from log.log_manager import logger
from seek.seek_base import SeekBase
from utils.time_utils import process_time
class House(SeekBase):
def __init__(self, information_source: TInformationSource):
super().__init__(information_source)
def get_news(self):
news_result = []
self.tab.wait.ele_displayed('.FeedList')
_news_list = self.tab.s_ele('.cbd-recommend').s_eles('.FeedList')
for _news in _news_list:
try:
rs_news = TNews()
rs_news.title = _news.s_ele('.item-text-content-title').text
link = _news.s_ele('tag:a').link
rs_news.url = link.split('?')[0]
rs_news.summary = _news.s_ele('.item-text-content-description').text
rs_news.occurrence_date = process_time(_news.s_ele('.extra-info-item').text)
rs_news.source = self.information_source.title
news_result.append(rs_news)
except ElementNotFoundError as e:
logger.error(f"ElementNotFoundError: {e} - Failed to find element in news item.")
except Exception as e:
logger.error(f'Unexpected error occurred: {e}')
return news_result
def get_news(information_source: TInformationSource) -> list:
instance = House(information_source)
news_list = instance.get_news()
instance.finish()
return news_list
def news_task(information_source: TInformationSource):
logger.info(f'{information_source.title} news_task start execute at {datetime.datetime.now()}', )
instance = House(information_source)
instance.do_seek_task()
instance.finish()
logger.info(f'{information_source.title} news_task end execute at {datetime.datetime.now()}')
if __name__ == '__main__':
logger.info('This module is not for direct call!')
information_source_ = TInformationSource()
information_source_.is_static = False
information_source_.url = 'https://sz.focus.cn/zixun/'
information_source_.title = '房产_搜狐焦点'
news_task(information_source_)
# news_list_ = get_news(information_source_)
# for news in news_list_:
# print(news)
logger.info('Done.')