精易论坛

标题: 没找到接着找,写法哪错了? [打印本页]

作者: fastdao    时间: 2019-7-21 17:43
标题: 没找到接着找,写法哪错了?
.版本 2

计次 = 0
网页数据 = 网页_访问S (“https://www.52pojie.cn/forum-66-1.html”)
分割数据 = 文本_取出中间文本 (网页数据, #分割数据前, #分割数据后)
结果 = 分割文本 (分割数据, “,”, )
页数 = 结果 [3]
文本_取中间_批量 (网页数据, “id='L”, “'”, 中间, , , , , , , )
页码ID = 中间 [取数组成员数 (中间)]

局_正则.创建 (“<div>(\d+)</div></div>”, 网页数据, , , 真)
.计次循环首 (局_正则.取匹配数量 (), 局_a)
    .如果真 (寻找文本 (局_正则.取子匹配文本 (局_a, 1), 变量2, 1, 假) ≠ -1)
        验证结果 = 局_正则.取子匹配文本 (局_a, 1)
        返回 (验证结果)
    .如果真结束
    没找到接着找 ()
    .如果真 (验证结果 = “”)
        没找到接着找 ()
    .如果真结束
    返回 (验证结果)
.计次循环尾 ()
返回 (验证结果)


.子程序 没找到接着找

计次 = 计次 + 1
.如果真 (计次 < 到整数 (页数))
    网页数据 = 网页_访问S (“https://www.52pojie.cn/forum-66-1.html”)
    局_正则.创建 (“<div>(\d+)</div></div>”, 网页数据, , , 真)
    .计次循环首 (局_正则.取匹配数量 (), 局_a)
        .如果真 (寻找文本 (局_正则.取子匹配文本 (局_a, 1), 变量2, 1, 假) ≠ -1)
            验证结果 = 局_正则.取子匹配文本 (局_a, 1)
        .如果真结束

    .计次循环尾 ()

没找到接着找,写法哪错了?明明有这个数据就是没找到,请高手指点~~~


作者: 杜子鳄    时间: 2019-7-21 20:02
用循环判断啊。 你用如果真只能跑一次就没了。
作者: fastdao    时间: 2019-7-21 20:11
杜子鳄 发表于 2019-7-21 20:02
用循环判断啊。 你用如果真只能跑一次就没了。

循环判断首  要用在哪个位置啊
作者: fastdao    时间: 2019-7-21 20:12
杜子鳄 发表于 2019-7-21 20:02
用循环判断啊。 你用如果真只能跑一次就没了。

不是已经计次循环首了吗
作者: fastdao    时间: 2019-7-21 20:16
杜子鳄 发表于 2019-7-21 20:02
用循环判断啊。 你用如果真只能跑一次就没了。

没找到接着找()  第二次网址是不一样的
作者: 杜子鳄    时间: 2019-7-21 20:26
fastdao 发表于 2019-7-21 20:16
没找到接着找()  第二次网址是不一样的

那就在 没找到接着找 子程序里弄个返回数据~ 上面的用 验证结果=没找到接着找 ()接收~

补充内容 (2019-7-21 20:31):
流程写的真乱。计次循环里,还嵌套别的有计次循环的子程序,结果都放在同一个变量,不错乱就怪了
作者: fastdao    时间: 2019-7-21 20:53
杜子鳄 发表于 2019-7-21 20:26
那就在 没找到接着找 子程序里弄个返回数据~ 上面的用 验证结果=没找到接着找 ()接收~

补充内容 (2019 ...

.版本 2

计次 = 0
网页数据 = 网页_访问S (“http://cc.ys168.com/f_ht/ajcx/lyd.aspx?cz=lyxs&n=1&dqy=0&lybh=0&zts=0&_dlmc=909048718&_dlmm=”)
分割数据 = 文本_取出中间文本 (网页数据, #分割数据前, #分割数据后)
结果 = 分割文本 (分割数据, “,”, )
页数 = 结果 [3]
文本_取中间_批量 (网页数据, “id='L”, “'”, 中间, , , , , , , )
页码ID = 中间 [取数组成员数 (中间)]

局_正则.创建 (“<div>(\d+)</div></div>”, 网页数据, , , 真)
.计次循环首 (局_正则.取匹配数量 (), 局_a)
    .如果真 (寻找文本 (局_正则.取子匹配文本 (局_a, 1), 变量2, 1, 假) ≠ -1)
        验证结果 = 局_正则.取子匹配文本 (局_a, 1)
        返回 (验证结果)
    .如果真结束
    没找到接着找 ()
    .如果真 (验证结果 ≠ 变量2)
        没找到接着找 ()
    .如果真结束
    返回 (验证结果)
.计次循环尾 ()
返回 (验证结果)

' 那就在 没找到接着找 子程序里弄个返回数据~ 上面的用 验证结果=没找到接着找 ()接收~

.子程序 没找到接着找

计次 = 计次 + 1
.如果真 (计次 < 到整数 (页数))
    网页数据 = 网页_访问S (“http://cc.ys168.com/f_ht/ajcx/lyd.aspx?cz=lyxs&n=3&dqy=” + 到文本 (计次) + “&lybh=” + 页码ID + “&zts=0&_dlmc=” + 变量2 + “&_dlmm=”)
    局_正则.创建 (“<div>(\d+)</div></div>”, 网页数据, , , 真)
    .计次循环首 (局_正则.取匹配数量 (), 局_a)
        .如果真 (寻找文本 (局_正则.取子匹配文本 (局_a, 1), 变量2, 1, 假) ≠ -1)
            验证结果 = 局_正则.取子匹配文本 (局_a, 1)
            返回 (验证结果)
        .如果真结束
        返回 (验证结果)
    .计次循环尾 ()



错误(10044): 不能将“文本型”数据转换到“空白型”数据。

还是不行啊~~~~
作者: ds9660    时间: 2019-7-21 21:10
  
子程序名返回值类型公开备 注
正则_匹配批量整数型 本子程序采用【精易编程助手】生成。成功返回匹配的数量,失败返回0。
参数名类 型参考可空数组备 注
源文本文本型欲被匹配的文本
变量名类 型静态数组备 注
局_正则正则表达式类此类为精易模块里面的正则类,精易模块下载地址:http://ec.125.la/
局_匹配数整数型 
局_计次整数型 
如果真 (局_正则.创建 (“<div>(.*?)</div>”, 源文本, 假, 假, 真,真))
信息框 (“正则创建失败,请检查正则表达式语句是否有误!”, #错误图标, )
返回 (0)
局_匹配数 = 局_正则.取匹配数量 ()
如果真 (局_匹配数 = 0)
信息框 (“匹配失败,请检检查正则语句是否有误,数量:0”, #错误图标, )
返回 (0)
计次循环首 (局_匹配数, 局_计次)
输出调试文本 (“匹配文本 ”到文本 (局_计次)“ 中的子匹配文本 1:” + 局_正则.取子匹配文本 (局_计次, 1))
计次循环尾 ()
返回 (局_匹配数)

作者: 冯古屋    时间: 2019-7-21 22:09
fastdao 发表于 2019-7-21 20:53
.版本 2

计次 = 0

一会52破J,一会一个其他网站,你到底用哪个?
作者: fastdao    时间: 2019-7-22 09:13
ds9660 发表于 2019-7-21 21:10
[e=0].版本 2

.子程序 正则_匹配批量, 整数型, , 本子程序采用【精易编程助手】生成。成功返回匹配的数 ...

关键第一次取的网址和第二次取的网址不同
作者: fastdao    时间: 2019-7-22 09:13
ds9660 发表于 2019-7-21 21:10
[e=0].版本 2

.子程序 正则_匹配批量, 整数型, , 本子程序采用【精易编程助手】生成。成功返回匹配的数 ...

关键第一次取的网址和第二次取的网址不同。
作者: fastdao    时间: 2019-7-22 09:14
冯古屋 发表于 2019-7-21 22:09
一会52破J,一会一个其他网站,你到底用哪个?

哪个网站不重要,就是表达的思路是不是正确,关键第一次取的网址和第二次取的网址不同。
作者: 冯古屋    时间: 2019-7-22 09:17
fastdao 发表于 2019-7-22 09:14
哪个网站不重要,就是表达的思路是不是正确,关键第一次取的网址和第二次取的网址不同。

我觉得关键可能在处理好正则公式吧
作者: ds9660    时间: 2019-7-22 11:40
fastdao 发表于 2019-7-22 09:13
关键第一次取的网址和第二次取的网址不同。

问题出在你正则没写对,你原来的正则是 <div>(d+)</div></div> 是匹配不到的,我帮你改成了<div>(.*?)</div>就能匹配到内容了,你如果换一个别的网站,也要参考修改一下正则表达式




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4