mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
🎨 http_utils代码优化
This commit is contained in:
parent
75e10fe38a
commit
92b0c6b4bf
@ -101,7 +101,7 @@ class AsyncHttpx:
|
|||||||
) -> Response:
|
) -> Response:
|
||||||
if not headers:
|
if not headers:
|
||||||
headers = get_user_agent()
|
headers = get_user_agent()
|
||||||
_proxy = proxy if proxy else cls.proxy if use_proxy else None
|
_proxy = proxy or (cls.proxy if use_proxy else None)
|
||||||
async with httpx.AsyncClient(proxies=_proxy, verify=verify) as client: # type: ignore
|
async with httpx.AsyncClient(proxies=_proxy, verify=verify) as client: # type: ignore
|
||||||
return await client.get(
|
return await client.get(
|
||||||
url,
|
url,
|
||||||
@ -140,7 +140,7 @@ class AsyncHttpx:
|
|||||||
"""
|
"""
|
||||||
if not headers:
|
if not headers:
|
||||||
headers = get_user_agent()
|
headers = get_user_agent()
|
||||||
_proxy = proxy if proxy else cls.proxy if use_proxy else None
|
_proxy = proxy or (cls.proxy if use_proxy else None)
|
||||||
async with httpx.AsyncClient(proxies=_proxy, verify=verify) as client: # type: ignore
|
async with httpx.AsyncClient(proxies=_proxy, verify=verify) as client: # type: ignore
|
||||||
return await client.head(
|
return await client.head(
|
||||||
url,
|
url,
|
||||||
@ -187,7 +187,7 @@ class AsyncHttpx:
|
|||||||
"""
|
"""
|
||||||
if not headers:
|
if not headers:
|
||||||
headers = get_user_agent()
|
headers = get_user_agent()
|
||||||
_proxy = proxy if proxy else cls.proxy if use_proxy else None
|
_proxy = proxy or (cls.proxy if use_proxy else None)
|
||||||
async with httpx.AsyncClient(proxies=_proxy, verify=verify) as client: # type: ignore
|
async with httpx.AsyncClient(proxies=_proxy, verify=verify) as client: # type: ignore
|
||||||
return await client.post(
|
return await client.post(
|
||||||
url,
|
url,
|
||||||
@ -264,13 +264,10 @@ class AsyncHttpx:
|
|||||||
async with aiofiles.open(path, "wb") as wf:
|
async with aiofiles.open(path, "wb") as wf:
|
||||||
await wf.write(content)
|
await wf.write(content)
|
||||||
logger.info(f"下载 {u} 成功.. Path:{path.absolute()}")
|
logger.info(f"下载 {u} 成功.. Path:{path.absolute()}")
|
||||||
return True
|
|
||||||
else:
|
else:
|
||||||
if not headers:
|
if not headers:
|
||||||
headers = get_user_agent()
|
headers = get_user_agent()
|
||||||
_proxy = (
|
_proxy = proxy or (cls.proxy if use_proxy else None)
|
||||||
proxy if proxy else cls.proxy if use_proxy else None
|
|
||||||
)
|
|
||||||
async with httpx.AsyncClient(
|
async with httpx.AsyncClient(
|
||||||
proxies=_proxy, # type: ignore
|
proxies=_proxy, # type: ignore
|
||||||
verify=verify,
|
verify=verify,
|
||||||
@ -303,7 +300,7 @@ class AsyncHttpx:
|
|||||||
) as progress:
|
) as progress:
|
||||||
download_task = progress.add_task(
|
download_task = progress.add_task(
|
||||||
"Download",
|
"Download",
|
||||||
total=total if total else None,
|
total=total or None,
|
||||||
)
|
)
|
||||||
async for chunk in response.aiter_bytes():
|
async for chunk in response.aiter_bytes():
|
||||||
await wf.write(chunk)
|
await wf.write(chunk)
|
||||||
@ -319,7 +316,6 @@ class AsyncHttpx:
|
|||||||
return True
|
return True
|
||||||
except (TimeoutError, ConnectTimeout, HTTPStatusError):
|
except (TimeoutError, ConnectTimeout, HTTPStatusError):
|
||||||
logger.warning(f"下载 {u} 失败.. 尝试下一个地址..")
|
logger.warning(f"下载 {u} 失败.. 尝试下一个地址..")
|
||||||
else:
|
|
||||||
logger.error(f"下载 {url} 下载超时.. Path:{path.absolute()}")
|
logger.error(f"下载 {url} 下载超时.. Path:{path.absolute()}")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"下载 {url} 错误 Path:{path.absolute()}", e=e)
|
logger.error(f"下载 {url} 错误 Path:{path.absolute()}", e=e)
|
||||||
@ -484,10 +480,7 @@ class AsyncPlaywright:
|
|||||||
if isinstance(path, str):
|
if isinstance(path, str):
|
||||||
path = Path(path)
|
path = Path(path)
|
||||||
wait_time = wait_time * 1000 if wait_time else None
|
wait_time = wait_time * 1000 if wait_time else None
|
||||||
if isinstance(element, str):
|
element_list = [element] if isinstance(element, str) else element
|
||||||
element_list = [element]
|
|
||||||
else:
|
|
||||||
element_list = element
|
|
||||||
async with cls.new_page(
|
async with cls.new_page(
|
||||||
viewport=viewport_size,
|
viewport=viewport_size,
|
||||||
user_agent=user_agent,
|
user_agent=user_agent,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user