【发布时间】:2016-07-19 04:15:05
【问题描述】:
我正在解析文本,现在遇到了一些挑战: 文本中的原始字符串是
"All time views: 4,12011 shoppers saved this home"
我想用一段代码来识别这句话的意思,即:
All time views: 4,120
11 shoppers saved this home
理想情况下,我想返回类似
的东西{'views': 4,120, 'saved': 11}
这是流水数据,我在他们的网站上查了很多记录,发现“所有时间的浏览量”通常是 2 到 5 位,而“节省的购物者”可以是 1 位或 2 位。
PS:原始文本是通过从网页中删除所有html标签获得的,导致这种有线句子结构。原始 html 是:
<li>All time views: 4,120</li><li>11 shoppers saved this hom</li>
我的团队领导不想使用 html 标签来解析网页,因为网站会定期修改他们的 html。
有人有好主意吗?任何语言或伪代码或算法的简单描述都可以。谢谢。
【问题讨论】:
-
4,120 和 11 之间应该有空格吗?还是原始文本中没有空格?
-
去掉html标签后,没有空格了。最初,该 html 是
- views...4,120
- 11 个购物者已保存
-
我应该保留所有
- 标签吗?
-
你能修改html解析器吗?这样我建议在第一个
- 标记之后添加一个“特殊字符”,例如换行符 (\n)。这样你就可以得到两条线并立即知道它是哪条线......
-
我会修改解析器,通常用至少一个空格替换标签,以避免将来丢失信息。