关于 V2EX 的 app 开发问题,回复内容的存储和解析

2018-12-17 00:38:56 +08:00
 wly19960911

对于内容的抓取,我有个疑问就是数据该怎么存更好。

比如我这这里有个 class

class Topic extends _TopicModel {
  ...
  String content; // 帖子内容正文
  ...
}

那么我在抓取的时候有个疑问了,这个回复内容正文抓取之后应该存什么数据,我发现解析的时候就非常不方便,因为 V2EX 的回复内容一种有三种特殊情况 : 换行符、markdown、图片。

然后我就修改了下。

enum ContentType {
  text,
  img,
  br
}
class _ContentElement {
  ContentType type;
  String content;
}

class StringContentElement extends _ContentElement {
  StringContentElement(String text) {
    type = ContentType.text;
    content = text;
  }
}


class Topic extends _TopicModel {
  ...
  List<_ContentElement> content; // 帖子内容正文
  ...
}

但是不管怎么写都感觉别扭了,我就打算停手了,对于这种数据的抓取有什么更好的存储和解析格式吗,我对爬虫也不是很了解。有人可以给我简述下思路吗?

1965 次点击
所在节点    问与答
6 条回复
XQBoy
2018-12-17 00:54:53 +08:00
wly19960911
2018-12-17 01:02:11 +08:00
@XQBoy Swift 我就明天看吧,今天太晚了,也没有接触过 Swift,感谢。
wly19960911
2018-12-17 13:14:43 +08:00
@XQBoy #1 看了下,是用 webView 处理的啊,我看看相关资料去。第一次开发移动端 app 很多东西还不懂,而且 flutter 还有很多包不完善。
wly19960911
2018-12-17 13:45:20 +08:00
看来 webView 是 flutter 的一个坑了,html 什么都好解析,富文本类型有点没辙。学习使用的时候还是得注意下别挑富文本内容的网站了
devjoe
2018-12-17 15:01:01 +08:00
我是一楼链接的开发者,可能有些误区。

主题的内容是用 Webview 渲染的,回复的内容是解析 html,然后转成原生的富文本。如果回复也用 webview 的话,性能很吃紧。

还一个方案是整个页面是 webview,自己解析内容然后包装成想要的样式。

另外官方有提高 API,如果要求不高也可以直接用 API
wly19960911
2018-12-17 15:05:48 +08:00
@devjoe #5 感谢,我是一个前端,所以对移动端处理不熟悉,鉴于我使用的是 flutter,webView 解析这块问题感觉很大。

大致看了下 swift 还算是看到了处理的过程,也感谢你回复关于 webView 的一些事情。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/518114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX