50 lines
2.4 KiB
Python
50 lines
2.4 KiB
Python
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)
|
|
|
|
@classmethod
|
|
def oneComic(cls,c_url,sleep=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,
|
|
alias=alias) |