zmy 发表于 2019-12-24 18:22

易语言获取网页内容问题

本帖最后由 zmy 于 2019-12-24 22:59 编辑

先上图
图1:

图2:


上面两个图片是网页中截图,现在想要获取小写后面的价格,但是发现网页源码不一样,找不到共同点。
图片1对应代码:
<tr><td><p style="text-align: center;"><strong>中标价格 </strong></p></td><td colspan="5"><p><strong>小写:¥2577532.10元</strong></p><p><strong>大写:贰佰伍拾柒万柒仟伍佰叁拾贰元壹角整</strong></p></td></tr>
图片2对应代码:
<tr style="height: 47px;"><td width="93" style="background: white; border-width: 0px 1px 1px; border-style: none solid solid; border-color: rgb(0, 0, 0) windowtext windowtext; padding: 2px; border-image: none;" colspan="2"><p style="text-align: center;"><span style="font-family: 宋体;">中标价格</span></p></td><td width="592" style="background: white; border-width: 0px 1px 1px 0px; border-style: none solid solid none; border-color: rgb(0, 0, 0) windowtext windowtext rgb(0, 0, 0); padding: 2px;" colspan="11"><p><span style="font-family: 宋体;">小写:¥</span><span style="font-family: Calibri;">2387311.05</span><span style="font-family: 宋体;">元</span></p><p><span style="font-family: 宋体;">大写:贰佰叁拾捌万柒仟叁佰壹拾壹元伍分</span></p></td>

请高手指点应该怎样才能成功获取小写金额。

b0y 发表于 2019-12-24 18:34

手机看不到代码。如果没有共同特征 分别取2次不就行了

yuehuna 发表于 2019-12-24 18:55

取小写和元的文本中间,然后只取数字

yty 发表于 2019-12-24 19:06

文本_取出中间文本()   就可以了

hill_king 发表于 2019-12-24 19:12

那就做两次判断

kiki 发表于 2019-12-24 19:17

不用谢使用精益模块7 正则语句小写.*?(\d*\.\d*|0\.\d*\d*|0?\.0+|0).*?元


.版本 2

.子程序 _按钮1_被单击

正则 (#常量1)

.子程序 _按钮2_被单击

正则 (#常量2)

.子程序 正则, 整数型, , 本子程序采用【精易编程助手】生成。成功返回匹配的数量,失败返回0。
.参数 源文本, 文本型, , 欲被匹配的文本
.局部变量 局_正则, 正则表达式类, , , 此类为精易模块里面的正则类,精易模块下载地址:http://ec.125.la/
.局部变量 局_匹配数, 整数型
.局部变量 局_计次, 整数型

.如果真 (局_正则.创建 (“小写.*?(\d*\.\d*|0\.\d*\d*|0?\.0+|0).*?元”, 源文本, 假, 假, 真, 真) = 假)
    信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, , )
    返回 (0)
.如果真结束
局_匹配数 = 局_正则.取匹配数量 ()
.如果真 (局_匹配数 = 0)
    信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, , )
    返回 (0)
.如果真结束
.计次循环首 (局_匹配数, 局_计次)
    输出调试文本 (“匹配文本 ” + 到文本 (局_计次) + “ 中的子匹配文本 1:” + 局_正则.取子匹配文本 (局_计次, 1))
.计次循环尾 ()
返回 (局_匹配数)

CC 发表于 2019-12-24 20:10

本帖最后由 CC 于 2019-12-24 20:11 编辑

源码不一样,去掉HTML标签的纯文本就一样了,这个可以将源码改为纯文本

.版本 2

.子程序 xml_取纯文本, 文本型
.参数 xml源码, 文本型
.局部变量 正则, 正则表达式类
.局部变量 xml, 文本型

xml = xml源码
正则.创建 (“<script[\s\S]*?</script>|<style[\s\S]*?</style>|<[^>]+>|&.{1,8};”, xml)
xml = 正则.替换 ()
返回 (xml)

zmy 发表于 2019-12-24 20:36

CC 发表于 2019-12-24 20:10
源码不一样,去掉HTML标签的纯文本就一样了,这个可以将源码改为纯文本

.版本 2
...

谢谢大神

zmy 发表于 2019-12-24 20:38

b0y 发表于 2019-12-24 18:34
手机看不到代码。如果没有共同特征 分别取2次不就行了

谢谢。主要是每打开一个网页他的代码就可能是一种情况,我这里只是随便找了两个不同的。

zmy 发表于 2019-12-24 20:39

kiki 发表于 2019-12-24 19:17
不用谢使用精益模块7 正则语句小写.*?(\d*\.\d*|0\.\d*\d*|0?\.0+|0).*?元




谢谢,没用过模块,我试试
页: [1] 2
查看完整版本: 易语言获取网页内容问题