TA的每日心情 | 开心 2019-8-21 08:44 |
---|
签到天数: 163 天 [LV.7]常住居民III
|
发表于 2019-5-11 13:24:04
|
显示全部楼层
本帖最后由 mikeee 于 2019-5-11 13:33 编辑
9 M8 N4 j y7 w6 i. N, k
" w6 X1 H" l: R6 l先给答案:用 css选择器 .phmk,.phrase,.table
5 i, @! `' b+ y1 J4 Y. G z# f8 M- B. |1 A! ^! [# r
验证方法。 先将以下代码(楼主给出的mdict/html码)存为html文件,例如 phrases-idioms.html
) d- G7 g& ] g+ u' b- <span class="phmk">■</span phmk> <span class="phrase">be taken aback </span phrase>:<br>.<span class="table"><span class="num">1.</span num>吃一惊;被弄糊涂:</span table>
复制代码
" X) a, ^2 c6 t: {' |
: B- A7 a: `, h+ i+ t- H再用Chrome打开 phrases-idioms.html (一般双击 phrases-idioms.html即可。也可用其他浏览器,基本思想一样)。再调出 devtools (Chrome里右键选 Inspect或ctl-shift-I)。在devtools选定 Elements标签。在Elements标签按 ctrl-f,在跳出的搜索栏里键入 .phmk,.phrase,.table
0 c: T8 ]' b+ Z' N
. F+ Q# O' |, A6 U结果大致如下图
, \: O2 F5 q4 h
, I5 z4 I0 [; K4 Z' L5 K# W9 a- J) O4 c/ N$ r& f( Y# S
, A$ H. K$ L0 ]4 u K
可以看到 css选择器 .phmk,.phrase,.table 找到网页里的三个元素。( U" |- |5 U5 b. B* }2 p& r
# R4 d/ V) p' T% l5 Y x$ O至于如何提出对应的三个元素有许多办法,python里可用 pyquery, node/js里可用 cheerio/jquery,其他编程语言也都应该有包可用。4 ~5 L' Y& }# x- i" u% g: S
+ j. ?0 K- ~3 z0 U" X. K. I4 F4 W; @python的话可直接用 readmdict 直接从 mdx 文件逐个读出每个词头的内容再用 pyquery + css选择器 进行处理, 内存足迹极小。顺便提一句,正则要处理这种东西也并非不可能但怕是会力不从心,不信可以试试 |
|