def get_outline(lx: html.HtmlElement, number: str, title: str) -> str: o = lx.xpath( "//div[@class='movie-info section']/p[@itemprop='description']/text()" )[0].strip() g = getStoryline(number, title) if len(g): return g return o
def main(number): html = get_html('https://tellme.pw/avsox') site = etree.HTML(html).xpath('//div[@class="container"]/div/a/@href')[0] a = get_html(site + '/cn/search/' + number) html = etree.fromstring(a, etree.HTMLParser()) result1 = str( html.xpath('//*[@id="waterfall"]/div/a/@href')).strip(" ['']") if result1 == '' or result1 == 'null' or result1 == 'None': a = get_html(site + '/cn/search/' + number.replace('-', '_')) html = etree.fromstring(a, etree.HTMLParser()) result1 = str( html.xpath('//*[@id="waterfall"]/div/a/@href')).strip(" ['']") if result1 == '' or result1 == 'null' or result1 == 'None': a = get_html(site + '/cn/search/' + number.replace('_', '')) html = etree.fromstring(a, etree.HTMLParser()) result1 = str( html.xpath('//*[@id="waterfall"]/div/a/@href')).strip(" ['']") detail = get_html("https:" + result1) lx = etree.fromstring(detail, etree.HTMLParser()) try: new_number = getNum(lx) if new_number.upper() != number.upper(): raise ValueError('number not found') title = getTitle(lx).strip(new_number) dic = { 'actor': getActor(lx), 'title': title, 'studio': getStudio(lx), 'outline': getStoryline(number, title), 'runtime': getRuntime(lx), 'director': '', # 'release': getRelease(lx), 'number': new_number, 'cover': getCover(lx), 'cover_small': getCover_small(html), 'imagecut': 3, 'tag': getTag(lx), 'label': getLabel(lx), 'year': getYear(getRelease(lx)), 'actor_photo': getActorPhoto(lx), 'website': "https:" + result1, 'source': 'avsox.py', 'series': getSeries(lx), } except Exception as e: if config.getInstance().debug(): print(e) dic = {"title": ""} js = json.dumps( dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), ) # .encode('UTF-8') return js
def getOutline(html, number, title): storyline_site = config.getInstance().storyline_site().split(',') a = set(storyline_site) & {'airav', 'avno1'} # 只要中文的简介文字 if len(a): site = [n for n in storyline_site if n in a] g = getStoryline(number, title, site) if len(g): return g try: x = html.xpath('//h2[@class="title-detail"]/../p[@class="lead"]/text()')[0] return x.replace(getNum(html), '') except: return ''
def main(number): html = get_html('https://tellme.pw/avsox') site = Crawler(html).getString('//div[@class="container"]/div/a/@href') a = get_html(site + '/cn/search/' + number) html = Crawler(a) result1 = html.getString('//*[@id="waterfall"]/div/a/@href') if result1 == '' or result1 == 'null' or result1 == 'None': a = get_html(site + '/cn/search/' + number.replace('-', '_')) html = Crawler(a) result1 = html.getString('//*[@id="waterfall"]/div/a/@href') if result1 == '' or result1 == 'null' or result1 == 'None': a = get_html(site + '/cn/search/' + number.replace('_', '')) html = Crawler(a) result1 = html.getString('//*[@id="waterfall"]/div/a/@href') detail = get_html("https:" + result1) lx = etree.fromstring(detail, etree.HTMLParser()) avsox_crawler2 = Crawler(a) avsox_crawler = Crawler(detail) try: new_number = avsox_crawler.getString('//span[contains(text(),"识别码:")]/../span[2]/text()') if new_number.upper() != number.upper(): raise ValueError('number not found') title = avsox_crawler.getString('/html/body/div[2]/h3/text()').replace('/','').strip(new_number) dic = { 'actor': getActor(lx), 'title': title, 'studio': avsox_crawler.getString('//p[contains(text(),"制作商: ")]/following-sibling::p[1]/a/text()').replace("', '",' '), 'outline': getStoryline(number, title), 'runtime': avsox_crawler.getString('//span[contains(text(),"长度:")]/../text()').replace('分钟',''), 'director': '', # 'release': avsox_crawler.getString('//span[contains(text(),"发行时间:")]/../text()'), 'number': new_number, 'cover': avsox_crawler.getString('/html/body/div[2]/div[1]/div[1]/a/img/@src'), #'cover_small' : getCover_small(html), 'cover_small': avsox_crawler2.getString('//*[@id="waterfall"]/div/a/div[1]/img/@src'), 'imagecut': 3, 'tag': getTag(lx), 'label': avsox_crawler.getString('//p[contains(text(),"系列:")]/following-sibling::p[1]/a/text()'), 'year': re.findall('\d{4}',avsox_crawler.getString('//span[contains(text(),"发行时间:")]/../text()'))[0], 'actor_photo': getActorPhoto(lx), 'website': "https:" + result1, 'source': 'avsox.py', 'series': avsox_crawler.getString('//span[contains(text(),"系列:")]/../span[2]/text()'), } except Exception as e: if config.getInstance().debug(): print(e) dic = {"title": ""} js = json.dumps(dic, ensure_ascii=False, sort_keys=True, indent=4, separators=(',', ':'), ) # .encode('UTF-8') return js
def getOutline(number, title): #获取剧情介绍 多进程并发查询 return getStoryline(number,title)
def getOutline(number, title): #获取剧情介绍 多进程并发查询 if any(caller for caller in inspect.stack() if os.path.basename(caller.filename) == 'airav.py'): return '' # 从airav.py过来的调用不计算outline直接返回,避免重复抓取数据拖慢处理速度 return getStoryline(number, title)
def getOutline(number, title, uncensored): #获取剧情介绍 多进程并发查询 return getStoryline(number, title, 无码=uncensored)