有些书最后一页下载不了
Opened this issue · 3 comments
liwooood commented
原因是: readerFooter 里 没有 readerFooter_button 是 readerFooter_ending_title
把函数改为下边就可以了。
async def _check_next_page(self):
while True:
result = ''
try:
await self.wait_for_selector(
# "button.readerFooter_button", timeout=59000
"div.readerFooter", timeout=59000
)
try:
result = await self._page.evaluate(
"document.getElementsByClassName('readerFooter_button')[0].innerText;"
)
except pyppeteer.errors.ElementHandleError:
logging.info("[%s] load selector ElementHandleError " % self.__class__.__name__)
result = await self._page.evaluate(
"document.getElementsByClassName('readerFooter_ending_title')[0].innerText;"
)
except pyppeteer.errors.TimeoutError:
logging.info("[%s] load selector timeout " % self.__class__.__name__)
break
if result == "下一页":
logging.info("[%s] Go to next page" % self.__class__.__name__)
await self._page.evaluate(
r"canvasContextHandler.data.markdown += '\n\n';"
)
await self.pre_load_page()
await self._page.click("button.readerFooter_button")
await asyncio.sleep(1)
elif result == "下一章":
break
elif result.startswith("登录"):
raise utils.LoginRequiredError()
elif result == "全 书 完":
break
else:
raise NotImplementedError(result)
drunkdream commented
要不你提个PR吧
Adver23 commented
readerFooter
这是哪个文件啊😂
shengjiangfeng commented
这个函数也不一定能解决,出现问题的时候是被限流了,下一页,全书完这些都没有,就会无限重复循环