gedoor / MyBookshelf

阅读是一款可以自定义来源阅读网络内容的工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。
https://gedoor.github.io
GNU General Public License v3.0
7.57k stars 1.81k forks source link

正文获取时碰到的问题及搜索时的编码问题 #529

Open hechenli123 opened 4 years ago

hechenli123 commented 4 years ago

先附上正在做的第一个书源正文页:https://www.123du.cc/dudu-40/652103/37927314.html 我仔细研究了一下html源码,该书网访问正文的时候有个验证的过程,第一次访问会有一个简单的空白页面,要求刷新,并提供一个js执行获得一个cookies。再次访问刷新后才会显示正文内容。 尝试用$id.DivContentBG@textNodes加入webView执行,下载章节失败。怀疑存在原因:是否设计时如果id.DivContentBG找不到元素就会提示这个错误。 另外想尝试执行js的写法,但是似乎只能执行单条语句?没有相关的详细的说明

正在做的第二个书源搜索页:https://so.biqusoso.com/s.php?ie=gbk&siteid=biqiuge.com&s=2758772450457967865&q=%B8%DF%BF%D5 制作时使用的搜索url:https://so.biqusoso.com/s.php?ie=gbk&siteid=biqiuge.com&q=searchKey|char=gb2312 这个网站有个问题,提交搜索的时候是gb2312编码的,返回的结果却是utf-8的,在app内会显示为中文乱码。 这应该是非常少见的网站了吧,但是希望作者可以提供一个解决方案。

非常喜欢作者的阅读,希望该app可以越做越好,谢谢。

hechenli123 commented 4 years ago

搜索中可以用js实现gb2312,不用char=gb2312,这样返回的就是utf8

可以给个简单的示范例子吗?谢谢

hechenli123 commented 4 years ago

在{{}}规则中只能执行单条语句,想多条需要用自执行函数。<js></js>可以多条执行,最后所有的js语句必须有返回值。

搜索中可以用js实现gb2312,不用char=gb2312,这样返回的就是utf8

可以给个简单的示范例子吗?谢谢

目测应该阔以 [https://so.biqusoso.com/s.php?ie=gbk&siteid=biqiuge.com&q={{Packages.java.lang.String("searchKey").getBytes("gbk").map(x](https://so.biqusoso.com/s.php?ie=gbk&siteid=biqiuge.com&q=%7B%7BPackages.java.lang.String(%22searchKey%22).getBytes(%22gbk%22).map(x) => (x&0xff).toString(16).toUpperCase()).join("%")}}

看代码是用的java实现的,前面还漏了一个%,加上就好了,非常感谢,这个问题已解决.