cf逻辑复用
This commit is contained in:
@@ -91,21 +91,7 @@ class SurugayaClient:
|
||||
logger.debug("开始抓取搜索页:payload=%s", json.dumps(payload.model_dump(), ensure_ascii=False))
|
||||
url = str(payload.search_url) if payload.search_url else self._build_search_url(payload)
|
||||
|
||||
session = await self._session_manager.get_verified_session(url)
|
||||
if session.html is not None:
|
||||
# 新创建的会话已携带页面 HTML,直接使用,避免二次加载
|
||||
html = session.html
|
||||
else:
|
||||
async with self._browser_pool.page_session(storage_state=session.storage_state) as (_, page):
|
||||
response = await page.goto(
|
||||
url,
|
||||
wait_until="domcontentloaded",
|
||||
timeout=int(self._settings.request_timeout_seconds * 1000),
|
||||
)
|
||||
status = response.status if response is not None else None
|
||||
if status != 200:
|
||||
await self._raise_upstream_error(page=page, response=response, url=url)
|
||||
html = await page.content()
|
||||
html, session = await self._session_manager.fetch_html(url)
|
||||
|
||||
tree = HTMLParser(html)
|
||||
|
||||
@@ -165,21 +151,8 @@ class SurugayaClient:
|
||||
logger.info("开始抓取详情页:goods_id=%s", goods_id)
|
||||
logger.debug("详情页URL:url=%s", url)
|
||||
|
||||
# 抓取页面 HTML
|
||||
session = await self._session_manager.get_verified_session(url)
|
||||
if session.html is not None:
|
||||
html = session.html
|
||||
else:
|
||||
async with self._browser_pool.page_session(storage_state=session.storage_state) as (_, page):
|
||||
response = await page.goto(
|
||||
url,
|
||||
wait_until="domcontentloaded",
|
||||
timeout=int(self._settings.request_timeout_seconds * 1000),
|
||||
)
|
||||
status = response.status if response is not None else None
|
||||
if status != 200:
|
||||
await self._raise_upstream_error(page=page, response=response, url=url)
|
||||
html = await page.content()
|
||||
# 抓取页面 HTML(会话复用失败时由 fetch_html 内部自动重建,避免成功/失败交替)
|
||||
html, _ = await self._session_manager.fetch_html(url)
|
||||
|
||||
tree = HTMLParser(html)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user