import sys sys.path.append('../') import json from bs4 import BeautifulSoup from lxml import html from ADC_function import post_html import re def main(number: str) -> json: try: result = post_html(url="https://www.jav321.com/search", query={"sn": number}) soup = BeautifulSoup(result.text, "html.parser") lx = html.fromstring(str(soup)) except: dic = {"title": ""} return json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':')) if "/video/" in result.url: data = parse_info(soup) dic = { "title": get_title(lx), "year": get_year(data), "outline": get_outline(lx), "director": "", "cover": get_cover(lx), "imagecut": 1, "trailer": get_trailer(result.text), "extrafanart": get_extrafanart(result.text), "actor_photo": "", "website": result.url, "source": "jav321.py", **data, } else: dic = {"title": ""} return json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':')) def get_title(lx: html.HtmlElement) -> str: return lx.xpath("/html/body/div[2]/div[1]/div[1]/div[1]/h3/text()")[0].strip() def parse_info(soup: BeautifulSoup) -> dict: data = soup.select_one("div.row > div.col-md-9") if data: dd = str(data).split("
") data_dic = {} for d in dd: data_dic[get_bold_text(h=d)] = d return { "actor": get_actor(data_dic), "label": get_label(data_dic), "studio": get_studio(data_dic), "tag": get_tag(data_dic), "number": get_number(data_dic), "release": get_release(data_dic), "runtime": get_runtime(data_dic), "series": get_series(data_dic), } else: return {"title": ""} def get_bold_text(h: str) -> str: soup = BeautifulSoup(h, "html.parser") if soup.b: return soup.b.text else: return "UNKNOWN_TAG" def get_anchor_info(h: str) -> str: result = [] data = BeautifulSoup(h, "html.parser").find_all("a", href=True) for d in data: result.append(d.text) return ",".join(result) def get_text_info(h: str) -> str: return h.split(": ")[1] def get_trailer(html) -> str: videourl_pather = re.compile(r'
[\s\S]*?