TA的每日心情 | 开心 2019-8-21 08:44 |
---|
签到天数: 163 天 [LV.7]常住居民III
|
发表于 2019-5-11 13:24:04
|
显示全部楼层
本帖最后由 mikeee 于 2019-5-11 13:33 编辑 K0 Y! F7 T) g) a/ x
7 q/ }6 u# C, e) W先给答案:用 css选择器 .phmk,.phrase,.table
( G& d7 |! v8 g2 A0 M
( T( w% ^: X; ^( h验证方法。 先将以下代码(楼主给出的mdict/html码)存为html文件,例如 phrases-idioms.html, G5 D i, k; }& [0 P
- <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>
复制代码
* y5 v$ E: j# w- T8 p% z: Q& g5 w* a0 ?/ K; E/ }" \
再用Chrome打开 phrases-idioms.html (一般双击 phrases-idioms.html即可。也可用其他浏览器,基本思想一样)。再调出 devtools (Chrome里右键选 Inspect或ctl-shift-I)。在devtools选定 Elements标签。在Elements标签按 ctrl-f,在跳出的搜索栏里键入 .phmk,.phrase,.table: Q4 B- @) \" L8 p [2 v' r
! ~* h7 K+ s6 ]6 L6 a1 a
结果大致如下图4 n; u* }$ _, A. T
* K0 y+ S9 {* V. C0 d4 ~' w1 f
9 h9 Y. m# c; x" {4 s5 C
( ^; Z; `4 m a1 }2 t可以看到 css选择器 .phmk,.phrase,.table 找到网页里的三个元素。
+ ^8 ^- y, Z+ c/ f: Q8 x/ X* d4 \' \. l5 g0 n* X
至于如何提出对应的三个元素有许多办法,python里可用 pyquery, node/js里可用 cheerio/jquery,其他编程语言也都应该有包可用。
/ H. _' e* E( E1 v. b/ M# c6 F8 s1 ?) Z/ w4 h+ K& M- c0 j# o- l
python的话可直接用 readmdict 直接从 mdx 文件逐个读出每个词头的内容再用 pyquery + css选择器 进行处理, 内存足迹极小。顺便提一句,正则要处理这种东西也并非不可能但怕是会力不从心,不信可以试试 |
|