标题:求助:如何将网上的表格内容下载下来?谢谢!
只看楼主
closeall
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2017-1-18
得分:0 
回复 10楼 sdta
只是拷贝过去,这部分命令我不会,可能是vfp7的区别,我正在装9,再试试。另外一个问题是如果只是将股票代码000001改到000002,下载下来的数据没有变化?我不会url这些命令,谢谢您帮忙。现在股市大概4300只股票,我之前是用通达信下载到本地的数据转过来的,网上下载的命令我不会,麻烦您指导一下,谢谢!
将“http://dcfm.(x)%2C%22pages%22%3A(tp)%7D&cmd=000001&token=894050c76af8597a853f5b408b759f5d”中的000001换成000002,那个表格没变,不知道这样是不是可以?


[此贴子已经被作者于2021-5-5 21:39编辑过]

2021-05-05 21:37
closeall
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2017-1-18
得分:0 
回复 5楼 sdta
VFP7下不行,vfp9下OK了,非常感谢!!
2021-05-05 21:46
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用closeall在2021-5-5 21:37:11的发言:

只是拷贝过去,这部分命令我不会,可能是vfp7的区别,我正在装9,再试试。另外一个问题是如果只是将股票代码000001改到000002,下载下来的数据没有变化?我不会url这些命令,谢谢您帮忙。现在股市大概4300只股票,我之前是用通达信下载到本地的数据转过来的,网上下载的命令我不会,麻烦您指导一下,谢谢!
将“http://dcfm.(x)%2C%22pages%22%3A(tp)%7D&cmd=000001&token=894050c76af8597a853f5b408b759f5d”中的000001换成000002,那个表格没变,不知道这样是不是可以?

股市有4224只股票,对不对

坚守VFP最后的阵地
2021-05-05 23:06
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
也可以用页面Document接口取数

程序代码:
oie = CREATEOBJECT("internetexplorer.application")
oie.Navigate("http://data./yjfp/detail/000001.html")
DO WHILE oie.Busy OR oie.ReadyState!=4
    DOEVENTS 
    INKEY(1)
    ?? " 请稍候......",TIME()+0h0D
ENDDO
bError = .F.
TRY 
    oTab = oie.Document.getElementsByTagName("tbody").[1]
CATCH
    bError = .T.
ENDTRY
IF !bError 
    CREATE CURSOR tt (;
        f1 C(10),f2 C(10),f3 C(12),f4 C(10),f5 C(10),f6 C(10),;
        f7  N(6,2) NULL,f8  N(6,2) NULL,f9  N(6,2) NULL,f10 N(6,2) NULL,;
        f11 N(6,2) NULL,f12 N(6,2) NULL,f13 N(6,2) NULL,;
        f14 C(6),f15 C(6),f16 C(6),f17 C(8),f18 C(6))
    FOR EACH oRow IN oTab.Rows
        INSERT INTO tt VALUES (;
            oRow.cells(0).innertext,;
            oRow.cells(1).innertext,;
            oRow.cells(2).innertext,;
            oRow.cells(3).innertext,;
            oRow.cells(4).innertext,;
            oRow.cells(5).innertext,;
            IIF(oRow.cells( 6).innertext!="-", VAL(oRow.cells( 6).innertext), NULL),;
            IIF(oRow.cells( 7).innertext!="-", VAL(oRow.cells( 7).innertext), NULL),;
            IIF(oRow.cells( 8).innertext!="-", VAL(oRow.cells( 8).innertext), NULL),;
            IIF(oRow.cells( 9).innertext!="-", VAL(oRow.cells( 9).innertext), NULL),;
            IIF(oRow.cells(10).innertext!="-", VAL(oRow.cells(10).innertext), NULL),;
            IIF(oRow.cells(11).innertext!="-", VAL(oRow.cells(11).innertext), NULL),;
            IIF(oRow.cells(12).innertext!="-", VAL(oRow.cells(12).innertext), NULL),;
            oRow.cells(13).innertext,;
            oRow.cells(14).innertext,;
            oRow.cells(15).innertext,;
            oRow.cells(16).innertext,;
            oRow.cells(17).innertext)
    ENDFOR
    SELECT * FROM tt
ELSE
    ? " Error"
ENDIF
oie.Quit()
RETURN
2021-05-05 23:08
radiofan
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:466
专家分:696
注 册:2006-7-30
得分:0 
以下是引用吹水佬在2021-5-5 23:08:19的发言:

也可以用页面Document接口取数

oie = CREATEOBJECT("internetexplorer.application")
oie.Navigate("http://data.)
DO WHILE oie.Busy OR oie.ReadyState!=4
    DOEVENTS
    INKEY(1)
    ?? " 请稍候......",TIME()+0h0D
ENDDO
bError = .F.
TRY
    oTab = oie.Document.getElementsByTagName("tbody").[1]
CATCH
    bError = .T.
ENDTRY
IF !bError
    CREATE CURSOR tt (;
        f1 C(10),f2 C(10),f3 C(12),f4 C(10),f5 C(10),f6 C(10),;
        f7  N(6,2) NULL,f8  N(6,2) NULL,f9  N(6,2) NULL,f10 N(6,2) NULL,;
        f11 N(6,2) NULL,f12 N(6,2) NULL,f13 N(6,2) NULL,;
        f14 C(6),f15 C(6),f16 C(6),f17 C(8),f18 C(6))
    FOR EACH oRow IN oTab.Rows
        INSERT INTO tt VALUES (;
            oRow.cells(0).innertext,;
            oRow.cells(1).innertext,;
            oRow.cells(2).innertext,;
            oRow.cells(3).innertext,;
            oRow.cells(4).innertext,;
            oRow.cells(5).innertext,;
            IIF(oRow.cells( 6).innertext!="-", VAL(oRow.cells( 6).innertext), NULL),;
            IIF(oRow.cells( 7).innertext!="-", VAL(oRow.cells( 7).innertext), NULL),;
            IIF(oRow.cells( 8).innertext!="-", VAL(oRow.cells( 8).innertext), NULL),;
            IIF(oRow.cells( 9).innertext!="-", VAL(oRow.cells( 9).innertext), NULL),;
            IIF(oRow.cells(10).innertext!="-", VAL(oRow.cells(10).innertext), NULL),;
            IIF(oRow.cells(11).innertext!="-", VAL(oRow.cells(11).innertext), NULL),;
            IIF(oRow.cells(12).innertext!="-", VAL(oRow.cells(12).innertext), NULL),;
            oRow.cells(13).innertext,;
            oRow.cells(14).innertext,;
            oRow.cells(15).innertext,;
            oRow.cells(16).innertext,;
            oRow.cells(17).innertext)
    ENDFOR
    SELECT * FROM tt
ELSE
    ? " Error"
ENDIF
oie.Quit()
RETURN

2021-05-06 08:25
closeall
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2017-1-18
得分:0 
首先感谢大侠们的关爱,这么多人帮助我!!非常感谢。现在还有一些问题。
1,吹水佬的我试了一下,他在浏览器里打开网页,从网页下载,这个有点不可行,因为4300只股票,半自动是不行的。
2,sdta给我的程序,基本上还好,还有一点问题我解决不了:
‘http://dcfm.(x)%2C%22pages%22%3A(tp)%7D&cmd=000001&token=894050c76af8597a853f5b408b759f5d’
这一条指令太长了,而且我用宏代换是不执行的,我要能将其中的000001,不停的换成000002等等就可以了,也就是接受1只股票是可以的,这条指令我带换不了。
3, radiofan 的程序也是要打开ie,我一下子更新4300只股票的资料,是有问题的,能不能不重新打开啊?而且相对sdta的比较慢一点。

2021-05-06 14:15
closeall
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2017-1-18
得分:0 
回复 13楼 sdta
我真不知道有多少只,我之前用通达信base来增加,退市的没删除,留个纪念,http://dcfm.(x)%2C%22pages%22%3A(tp)%7D&cmd=000001&token=894050c76af8597a853f5b408b759f5d
大侠,这一行如何改啊?
2021-05-06 14:20
closeall
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2017-1-18
得分:0 
回复 17楼 closeall
搞好了,将cmd=‘000001’去掉,把信息数量加到50000,就补全资料了。谢谢大家!祝大家家里有矿,有船啊
2021-05-06 18:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用closeall在2021-5-6 14:20:17的发言:

我真不知道有多少只,我之前用通达信base来增加,退市的没删除,留个纪念,http://dcfm.(x)%2C%22pages%22%3A(tp)%7D&cmd=000001&token=894050c76af8597a853f5b408b759f5d
大侠,这一行如何改啊?

TEXT TO cUrl NOSHOW TEXTMERGE
http://dcfm.(x)%2C%22pages%22%3A(tp)%7D&cmd=000002&token=894050c76af8597a853f5b408b759f5d
ENDTEXT

改为:

lcGpdm = "000001"
cUrl = "http://dcfm.
    + "&st=ReportingPeriod&sr=-1&ps=50&p=1&type=DCSOBS&js=%7B%22data%22%3A(x)%2C%22pages%22%3A(tp)%7D&cmd=";
    + lcGpdm + "&token=894050c76af8597a853f5b408b759f5d"

坚守VFP最后的阵地
2021-05-07 09:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
这个网页的前台和后台数据有部分不相符,慎用!!!!

坚守VFP最后的阵地
2021-05-07 09:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505651-1-1.html




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

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