mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-15 14:22:55 +08:00
49 lines
1.8 KiB
Python
49 lines
1.8 KiB
Python
from utils.user_agent import get_user_agent
|
|
import aiohttp
|
|
from configs.config import MAXINFO_BT
|
|
from bs4 import BeautifulSoup
|
|
from utils.utils import get_local_proxy
|
|
import platform
|
|
|
|
if platform.system() == "Windows":
|
|
import asyncio
|
|
|
|
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
|
|
|
|
|
url = "http://www.eclzz.world"
|
|
|
|
|
|
async def get_bt_info(keyword: str, page: str):
|
|
async with aiohttp.ClientSession(headers=get_user_agent()) as session:
|
|
async with session.get(
|
|
f"{url}/s/{keyword}_rel_{page}.html", proxy=get_local_proxy(), timeout=5
|
|
) as response:
|
|
text = await response.text()
|
|
if text.find("大约0条结果") != -1:
|
|
return
|
|
soup = BeautifulSoup(text, "lxml")
|
|
item_lst = soup.find_all("div", {"class": "search-item"})
|
|
for item in item_lst[:MAXINFO_BT]:
|
|
divs = item.find_all("div")
|
|
title = (
|
|
str(divs[0].find("a").text)
|
|
.replace("<em>", "")
|
|
.replace("</em>", "")
|
|
.strip()
|
|
)
|
|
spans = divs[2].find_all("span")
|
|
itype = spans[0].text
|
|
create_time = spans[1].find("b").text
|
|
file_size = spans[2].find("b").text
|
|
link = await get_download_link(divs[0].find("a")["href"], session)
|
|
yield title, itype, create_time, file_size, link
|
|
|
|
|
|
async def get_download_link(_url: str, session) -> str:
|
|
async with session.get(
|
|
f"{url}{_url}", proxy=get_local_proxy(), timeout=30
|
|
) as response:
|
|
soup = BeautifulSoup(await response.text(), "lxml")
|
|
return soup.find("a", {"id": "down-url"})["href"]
|