52 lines
2.8 KiB
Python
52 lines
2.8 KiB
Python
import json
|
|
from utils.NetUtils import htmlUtils
|
|
from common.ComicInfo import ComicInfoUtils as ciUtils
|
|
from common.BaseComicEntity import baseComic
|
|
from common.Constant import pathStr
|
|
|
|
class comicEntity:
|
|
@classmethod
|
|
def baseComicData(cls,url,update=False):
|
|
data = htmlUtils.xpathData('//script[@id="__NEXT_DATA__"]/text()',url=url,update=update)
|
|
data = json.loads(data[0])
|
|
data = data.get("props")
|
|
x = data.get("pageProps")
|
|
return x
|
|
|
|
@classmethod
|
|
def downladsComcis(cls,url):
|
|
#漫画名
|
|
x = cls.baseComicData(url)
|
|
books = x.get("books")
|
|
len_books = len(books)
|
|
base_url = pathStr.getBaseUrl(url)
|
|
for x in range(0, len_books):
|
|
book = books[x]
|
|
book_id = book.get("id")
|
|
book_name = book.get("name")
|
|
updated = book.get("updatedAt")
|
|
comic_href = base_url+"/books/"+book_id
|
|
href = baseComic.updateOneComic(book_name=book_name,comic_href=comic_href,updated=updated)
|
|
cls.oneComic(href)
|
|
ciUtils.updateLastDate()
|
|
|
|
@classmethod
|
|
def oneComic(cls,c_url,sleep=None):
|
|
#漫画名
|
|
title = htmlUtils.xpathData('//div[@class="gb-inside-container"]/h1[contains(@class,"gb-headline-text")]/text()',url=c_url,update=True,num=0)
|
|
#别名
|
|
#alias = htmlUtils.xpathData('//span[contains(@class,"bookid_alias")]/text()',num=1)
|
|
#icon = htmlUtils.xpathData('//div[contains(@class,"gb-container")]/div[@class="gb-inside-container"]/img[contains(@class,"dynamic-featured-image")]/@src')
|
|
icon = htmlUtils.xpathData('//noscript/img[contains(@class,"dynamic-featured-image")]/@src',num=0)
|
|
author = htmlUtils.xpathData('//div[@class="gb-inside-container"]/div[@class="author-content"]/a/text()', num=0)
|
|
tags = htmlUtils.xpathData('//div[@class="gb-inside-container"]/div[@class="genres-content"]/a/text()')
|
|
dep = htmlUtils.xpathData('//div[@class="gb-inside-container"]/div/p/text()')
|
|
dep = "".join(dep)
|
|
#update_date = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapterlist"]//span[@class="chapter-release-date"]/i/text()')
|
|
chapters_url = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="c-chapter-readmore"]/@href',url=c_url,num=0)
|
|
chapters = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapterlist"]/text()',not_eq=' ',url=chapters_url)
|
|
chapter_href = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapterlist"]/@href',url=chapters_url)
|
|
|
|
baseComic.oneComic(url=c_url,title=title,author=author,
|
|
icon=icon,tags=tags,dep=dep,chapters=chapters,chapter_href=chapter_href,
|
|
alias=None) |