| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8605 人关注过本帖
标题:求助:这类不能从“查看源码”中直接获取列表值的网页数据如何提取
只看楼主 加入收藏
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
可以取回555页/8320条记录的最终效果是这样子的吗?

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-8-8 14:41编辑过]


民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-08-08 14:38
lxlsf
Rank: 2
等 级:论坛游民
帖 子:31
专家分:13
注 册:2014-10-10
收藏
得分:0 
回复 30楼 aaaaaa
谢谢6a,是的798只是爱建证券公司的索引号,去掉后就是所有的。至于循环问题,其实可以省掉,即把page.pageSize=15&page.pageNo=2改成page.pageSize=8321&page.pageNo=1(即在一页中完成所有8321条),如下:
s="filter_LIKES_msdi_name=&filter_LIKES_msdi_reg_address=&filter_EQS_aoi_id=&page.searchFileName=publicity&page.sqlKey=PAG_SALES_DEPT;
&page.sqlCKey=SIZE_SALES_DEPT&_search=false&page.pageSize=8321&page.pageNo=1&page.orderBy=MATO_UPDATE_DATE&page.order=desc"
2016-08-09 20:47
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
正好在做 JSon 数据的解析,以前做 JSon 数据的解析,一般用:Strextract(),比如:
m.营业部名称 = Strextract(lcStr, ["MSDI_NAME":"], ["], I)
如何是大尺寸的 JSon 文件,速度奇慢,比如 32楼的 8319 条记录,约 2.7MB,提取数据到游标,耗时 20-30 分钟。
后来改进了算法,现在耗时小于 30秒:
Clear

nStartPage = Seconds()
JsonString= Filetostr("SAC1.JSon")

Local m.Respocursor
m.RespoCursor = mpJsonRead(JsonString)
Set Null On

Create Cursor 营业部 (序号 I, 营业部名称 C(80), 办公地址 C(100), ;
    营业部负责人 C(8), 注册地址 C(80), 客户服务与投诉电话 C(14), ;
    电子邮件 C(30), 所在地证监局投诉电话 C(14))

? "TXT to Object 耗时(秒) : " + Transform(Seconds() - nstartpage)
? "记录数 : " + Transform(m.RespoCursor.totalCount)

For I = 1 To m.RespoCursor.totalCount
    Insert Into 营业部 Values ( ;
        m.RespoCursor.Result(I).RNUM, ;
        m.RespoCursor.Result(I).MSDI_NAME, ;
        m.RespoCursor.Result(I).MSDI_NAME, ;
        m.RespoCursor.Result(I).MSDI_SALES_MANAGER, ;
        m.RespoCursor.Result(I).MSDI_REG_ADDRESS, ;
        m.RespoCursor.Result(I).MSDI_CS_TEL, ;
        m.RespoCursor.Result(I).MSDI_EMAIL, ;
        m.RespoCursor.Result(I).MSDI_ZJJ_COMPLAINTS_TEL )
Endfor

nEndPage = Transform(Seconds() - nStartPage, "@Z 999")
? "JSon To Cursor 耗时(秒) : " + Transform(nEndPage)
Go Top
Browse Last

图片附件: 游客没有浏览图片的权限,请 登录注册

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-08-19 17:08
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
回复 33楼 aaaaaa
厉害啊

坚守VFP最后的阵地
2016-08-19 17:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
回复 33楼 aaaaaa
代码不完整啊

坚守VFP最后的阵地
2016-08-19 19:27
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
收藏
得分:0 
正在做 JSon 解析的各种数据提取的速度比较,包括 Fll/Dll 的外部动态库和 HeapAlloc/GlobalAlloc API,现在已经有 6 种算法,争取 10 秒搞定。
完成了,我会把几种算法的代码发上来,如果楼主需要的话。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-08-21 16:04
wanguhssheng
Rank: 2
等 级:论坛游民
威 望:2
帖 子:131
专家分:24
注 册:2016-2-26
收藏
得分:0 
提取网页,留待参考。
2016-08-22 09:39
xtuu
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-7-1
收藏
得分:0 
回复 33楼 aaaaaa
层主你好:
SAC1.JSon 是怎样得到的呢?
2020-08-14 23:22
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
以下是引用xtuu在2020-8-14 23:22:45的发言:

层主你好:
SAC1.JSon 是怎样得到的呢?

应该是JSON格式的纯文本文件(网上下载的JSON格式的数据)

坚守VFP最后的阵地
2021-03-20 10:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
33楼的代码关键之处应该是下面一行代码
m.RespoCursor = mpJsonRead(JsonString)
mpJsonRead() 应该是外部动态库的一个函数,从字面的含义看,应该是读取JSON格式的数据。如果需要经常读取JSON数据,还是需要学习这方面的知识,一般网站的JSON格式的数据下载还是容易的,难点在于JSON数据解析。

坚守VFP最后的阵地
2021-03-20 10:31
快速回复:求助:这类不能从“查看源码”中直接获取列表值的网页数据如何提取
数据加载中...
 
   



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

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