对于内容的抓取,我有个疑问就是数据该怎么存更好。
比如我这这里有个 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; // 帖子内容正文 ... }
但是不管怎么写都感觉别扭了,我就打算停手了,对于这种数据的抓取有什么更好的存储和解析格式吗,我对爬虫也不是很了解。有人可以给我简述下思路吗?
关于我这个内容,搜索了下,因为我是尝试使用 flutter ,1L给出的意见大概看懂了,直接使用 iOS提供的webView去处理 css 和 html,但是我搜索了下相关的资料,关于webview的问题,flutter能给出的资料非常有限,功能限制也大。
参考这个文章: https://www.jianshu.com/p/b29222d6ea3a/
目前如果是要使用webView看起来是必须使用插件了,这个有时间参考下相关的内容,看来需要搁浅下或者重新实现一个固定的解析方式 , 图片、换行符和链接都好处理,但是markdown带来的css估计得一个个处理了。
![]() | 1 XQBoy 2018-12-17 00:54:53 +08:00 via iPhone ![]() |
![]() | 2 wly19960911 OP @XQBoy Swift 我就明天看吧,今天太晚了,也没有接触过 Swift,感谢。 |
![]() | 3 wly19960911 OP @XQBoy #1 看了下,是用 webView 处理的啊,我看看相关资料去。第一次开发移动端 app 很多东西还不懂,而且 flutter 还有很多包不完善。 |
![]() | 4 wly19960911 OP ![]() |
![]() | 5 devjoe 2018-12-17 15:01:01 +08:00 via iPhone 我是一楼链接的开发者,可能有些误区。 主题的内容是用 Webview 渲染的,回复的内容是解析 html,然后转成原生的富文本。如果回复也用 webview 的话,性能很吃紧。 还一个方案是整个页面是 webview,自己解析内容然后包装成想要的样式。 另外官方有提高 API,如果要求不高也可以直接用 API |
![]() | 6 wly19960911 OP @devjoe #5 感谢,我是一个前端,所以对移动端处理不熟悉,鉴于我使用的是 flutter,webView 解析这块问题感觉很大。 大致看了下 swift 还算是看到了处理的过程,也感谢你回复关于 webView 的一些事情。 |