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
Esempio n. 2
0
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 ''
Esempio n. 4
0
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
Esempio n. 5
0
def getOutline(number, title):  #获取剧情介绍 多进程并发查询
    return getStoryline(number,title)
Esempio n. 6
0
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)
Esempio n. 7
0
def getOutline(number, title, uncensored):  #获取剧情介绍 多进程并发查询
    return getStoryline(number, title, 无码=uncensored)