import json from utils.HtmlUtils import htmlUtils from utils.comic.ComicInfo import comicInfo from utils.downloader import download_images from utils.base.BaseComicEntity import baseComic class comicEntity: @classmethod def booksJson(cls,url,update=False): data = htmlUtils.xpathData('//script[@id="__NEXT_DATA__"]/text()',url=url,update=update) return json.loads(data[0]).get("props").get("pageProps").get("books") @classmethod def downladsComcis(cls,url): #漫画名 books = cls.booksJson(url,update=True) for x in range(0, len(books)): comicInfo.setComicInfo(comicname=books[x].get("name"), current_chapter_img=comicInfo.getBaseUrl(url)+"/books/"+books[x].get("id"), update_at=books[x].get("updatedAt")) cls.oneComic(baseComic.updateComics()) @classmethod def oneComic(cls,c_url,sleep=None,date=comicInfo.getUpdateAt()): if c_url == None: return None title = htmlUtils.xpathData('//div[@class="col"]/h5/text()',url=c_url,num=0,update=True) #别名 #alias = htmlUtils.xpathData('//span[contains(@class,"bookid_alias")]/text()',num=1) icon = htmlUtils.xpathData('//img[@class="img-thumbnail"]/@src',num=0) author = htmlUtils.xpathData('//div[contains(@class,"bookid_bookInfo")]/p[1]/text()',num=1) tags = htmlUtils.xpathData('//div[contains(@class,"bookid_bookInfo")]/p[3]/b/text()',num=0) action = htmlUtils.xpathData('//div[contains(@class,"bookid_bookInfo")]/p[2]/text()',num=1) dep = htmlUtils.xpathData('//div[contains(@class,"bookid_bookInfo")]/p[4]/text()',num=1) update_date = htmlUtils.xpathData('//div[contains(@class,"bookid_bookInfo")]/p[5]/small/text()',num=1) chapters = htmlUtils.xpathData('//div[contains(@class,"bookid_chapterBox")]//div[contains(@class,"bookid_chapter")]/a/text()') chapter_href = htmlUtils.xpathData('//div[contains(@class,"bookid_chapterBox")]//div[contains(@class,"bookid_chapter")]/a/@href') baseComic.oneComic(url=c_url,title=title,author=author, icon=icon,tags=tags,dep=dep,chapters=chapters,chapter_href=chapter_href, genre="韩漫",age_rating="R18+") comicInfo.updateComicDate(date=date)