对于内容的抓取,我有个疑问就是数据该怎么存更好。
比如我这这里有个 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 1
|
2
wly19960911 OP @XQBoy Swift 我就明天看吧,今天太晚了,也没有接触过 Swift,感谢。
|
3
wly19960911 OP @XQBoy #1 看了下,是用 webView 处理的啊,我看看相关资料去。第一次开发移动端 app 很多东西还不懂,而且 flutter 还有很多包不完善。
|
4
wly19960911 OP 看来 webView 是 flutter 的一个坑了,html 什么都好解析,富文本类型有点没辙。学习使用的时候还是得注意下别挑富文本内容的网站了
|
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 的一些事情。 |