ao3镜像网站

由 xulouzhe 发布

分享一下自己做的两个ao3镜像网站以及心得

1.ao3.org.cn

利用阿里云香港服务器,采用了nginx直接反向代理搭建,我一开始没想到这个方案,但其实这个是最简单的,做出来效果也是比较好的。唯一的缺点是展示效果和原网站一模一样,不能自己定制。

2.www.ao3.org.cn

项目地址

这是我最先想到的方案,因为我以前做了一个学生日记展示的网站,我就直接把那一套前端框架拿来用了,后端采用flask,具体的思路就是用户搜索时,后端获取搜索词,向原网站发起搜索,将搜索结果提取之后展示到前端。得益于我之前写过一些爬虫,而且ao3这个网站没有做什么反爬虫措施(这种分享精神让我很感动)。

在写这个项目的时候也遇到过一些阻碍,第一个很好解决,就是原网站在某种情况下会触发一个成人内容警告,让后端无法直接获取内容。这个问题只要更改一下请求url就可以解决。其他比较大的阻碍是原网站内容展示有一些不规范的地方,比如在文章列表作者名的html元素不同,会导致网站直接500错误,这一点我后来加入了异常处理得到比较好的解决。还有一个阻碍是原网站的不同文章内容页html元素竟然会不同,这会导致我用xpath获取的文章内容有可能为空,需要要引入多套xpath去解析不同文章,降低了效率。而且因为作品数量巨大,没法一个个去看,因此无法保证每篇文章都能正常显示,只能等后期一点点发现新的bug再去修复。

更新日志

v1.2

  • 简单修复了bug,该bug导致分章节的文章经常无法访问而导致404
  • 修复方法为:当访问分章节文章出现404时,会尝试直接显示全文,这可能会导致阅读体验变差
  • 这其实跟原网站有关,之前直接访问ao3原网站不带章节id的url会自动跳转到文章第一章,后来陆陆续续出现了不带章节id不能访问的问题,我没太在意,现在好像都不能访问了,这就导致在我的网页上很多分章节文章会404。更麻烦的问题是原网站的章节管理机制,每篇文章的章节号并不是1开始顺序递增的。实际上是每一篇不同文章的每一个不同章节都有一个独立的章节id,而且在文章搜索界面并不能获取第一章的id,而是需要进行多次跳转才能得到,为了网站响应时间我不得不在无法获取章节id时直接跳转到全文访问,但是直接全文显示可能会影响阅读体验,这也是权宜之计。

v1.1

  • 更新了查询作者的功能

v1.0

  • 创建项目

暂无评论

发表评论