Cherry Studio 搜索引擎捉虫记录及修复方法
在最近的一次使用中,我遇到了一个有趣的问题:在使用Cherry Studio内置的搜索引擎(Bing、Baidu、Google)时,我发现它们几乎无法使用。这让我决定进行一次‘捉虫’行动,并深入探究其背后的原因。通过查看Cherry Studio的源代码,我发现了几个关键问题:首先,Cherry Studio会对AI生成的查询关键词进行一些不必要的处理,如插入日期信息和用户语言,导致搜索范围变窄。其次,Cherry Studio通过一个隐藏的窗口获取网页信息,但这种方式获取的信息与正常网页有较大差异。最后,Cherry Studio获取网页源码的时机不合适,有时页面还未完全加载就尝试获取,导致获取的内容为空。为了解决这些问题,我提交了一个pull request,通过启用离屏渲染并修改executeJavaScript的执行时机来修复这个问题。离屏渲染确保了不显示窗口时页面内容和显示窗口时一致,而改用ready-to-show事件确保页面完全加载后再获取完整的页面DOM,从而解决了搜索的bug。修复后的搜索引擎效果显著,提升了用户体验。
评论已关闭