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("", "") .replace("", "") .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"]