import json from utils.HtmlUtils import htmlUtils from utils.comic.ComicInfo import comicInfo from utils.downloader import download_images from utils.entity.BaseComicEntity import baseComic 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 = comicInfo.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.downladsComcis(book_name=book_name,comic_href=comic_href,updated=updated) cls.oneComic(href) comicInfo.updateComicDate() @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) #别名 #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') author = htmlUtils.xpathData('//div[@class="gb-inside-container"]/div[@class="author-content"]/a/text()') tags = htmlUtils.xpathData('//div[@class="gb-inside-container"]/div[@class="genres-content"]/a/text()') dep = htmlUtils.xpathData('//div[@class="gb-inside-container"]/div[@class="descrip_manga_info"]//p/text()') update_date = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapter"]//span[@class="chapter-release-date"]/i/text()') c_url = str(c_url).replace("manga","chapterlist")+"#" chapters = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapter"]/text()',not_eq=' ',url=c_url) chapter_href = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapter"]/@href',url=c_url) c_url = c_url+"#" chapters = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapter"]/text()',not_eq=' ',url=c_url) chapter_href = htmlUtils.xpathData('//div[@class="chapter-content-listing"]//a[@class="wp-manga-chapter"]/@href',url=c_url) baseComic.oneComic(url=c_url,title=title,author=author, icon=icon,tags=tags,dep=dep,chapters=chapters,chapter_href=chapter_href, alias=None)