drunkdream/weread-exporter

有些书最后一页下载不了

Opened this issue · 3 comments

原因是: 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)

要不你提个PR吧

readerFooter

这是哪个文件啊😂

这个函数也不一定能解决,出现问题的时候是被限流了,下一页,全书完这些都没有,就会无限重复循环