| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6198 人关注过本帖, 3 人收藏
标题:老师好,又来请教了,这个网页的采集入口如何找,谢谢
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用sdta在2021-6-5 11:30:15的发言:

如果当属性的顺序不一致时,程序会发生错误
{"ab":"12","cd","34","ef:","56"}
{"ef":"21","cd","43","ab:","65"}

是的,搜寻是不回头的:pStr = pEnd + LEN(cStr2)
如果要回头,每个记录要保存一个记录头指针,每次要从这个头指针开始搜寻
对于每个记录各字段数据顺序不确定,数据存放格式不规范,这样会影响搜寻效率
2021-06-05 11:47
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用sdta在2021-6-5 11:30:15的发言:

如果当属性的顺序不一致时,程序会发生错误
{"ab":"12","cd","34","ef:","56"}
{"ef":"21","cd","43","ab:","65"}

看来不只是属性的顺序问题,属性的名称、name与value的分隔符也有问题,谈不上数据结构。
只能当文本处理,只抽(逐个来)


2021-06-05 15:35
jinanshui
Rank: 2
等 级:论坛游民
帖 子:295
专家分:67
注 册:2009-10-6
收藏
得分:0 
这个数据类型为什么不对呢?
CREATE CURSOR 大乐透 (红1 C(2), 红2 C(2), 红3 C(2),红4 C(2),红5 C(2),兰1 C(2),兰2 C(2),期号 C(5))
cUrl = "https://webapi.
oHttp = CREATEOBJECT("MSXML2.XMLHTTP")
oHttp.Open("GET", cUrl, .F.)
oHttp.Send()

t1 = SECONDS()

jsCode = 'var data=' + oHttp.responseText + ';' +;
         'var list=data["value"]["list"];' +;
         'function getList(n,name){return list[n][name];}'
oSC = CREATEOBJECT("ScriptControl")
oSC.Language = "JavaScript"
oSC.AddCode(jsCode)
FOR i=0 TO oSC.eval('list.length')-1
    lyText = oSC.run("getList",i,"lotteryDrawNum")
    lztext = oSC.run("getList",i,"lotteryEquipmentCount")
    lmText = oSC.run("getList",i,"lotteryUnsortDrawresult")
    h1 = Substr(lmText ,1,2)
    h2 = Substr(lmText ,4,2)
    h3 = Substr(lmText ,7,2)
    h4 = Substr(lmText ,10,2)
    h5 = Substr(lmText ,13,2)
    l1 = Substr(lmText ,16,2)
    l2 = Substr(lmText ,19,2)
    lztext = ALLTRIM(lztext)
    INSERT INTO 大乐透 VALUES (h1,h2,h3,h4,h5,l1,l2,lyText)
ENDFOR
? SECONDS() - t1 && 1.6秒
2021-06-10 02:23
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 53楼 jinanshui
"lotteryEquipmentCount":2,
lotteryEquipmentCount是数值型,不用做数据类型转换,定义“期号 N(5)”就可以
2021-06-10 07:34
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
lotteryEquipmentCount 的返回值为数值型,所以 lztext = ALLTRIM(lztext) 中不能使用ALLTRIM()
在JSON格式文本中, "lotteryEquipmentCount":2,此时的2表示数值型数据;
如果:"lotteryEquipmentCount":"2",此时的2表示字符型数据;
解析JSON格式文本,最基础的知识必须要掌握。

坚守VFP最后的阵地
2021-06-10 07:43
jinanshui
Rank: 2
等 级:论坛游民
帖 子:295
专家分:67
注 册:2009-10-6
收藏
得分:0 
好的,谢谢两位版主
2021-06-10 08:35
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
收藏
得分:0 
好贴,学习
2022-07-03 22:24
快速回复:老师好,又来请教了,这个网页的采集入口如何找,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013535 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved