标题:想下这个网站数据,完全搞不定啊,有没有哪位大能帮帮?
只看楼主
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
结帖率:66.67%
已结贴  问题点数:20 回复次数:22 
想下这个网站数据,完全搞不定啊,有没有哪位大能帮帮?
想下这个数据到VFP,翻了以前有关的帖子,完全看不懂语句含义!,彻底搞不定。
http://data.
有没有哪位大能帮帮?

只查出来对应链接:
 "http://data.。  对应第一页
http://data.  
用/page/2..../page/6 的变化对应第二到第六页
搜索更多相关主题的帖子: data 数据 网站 对应 page 
2022-07-15 14:07
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
对应链接可以打开
2022-07-15 17:13
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
得分:0 
是啊,就是不知道怎么下。,看了以前的有关帖子,完全搞不懂语句的作用。
2022-07-15 20:44
nbwww
Rank: 6Rank: 6
等 级:贵宾
威 望:10
帖 子:222
专家分:468
注 册:2021-1-9
得分:10 
CLEAR
SET DELETED ON     
SET SAFETY OFF
oXml = CreateObject("MSXML2.XMLHTTP")
cUrl = "http://data.
oXml.Open("GET", cUrl, .F.)
oXml.Send()

lcText=STRCONV(oXml.ResponseBody, 2)
STRTOFILE(lcText,'temp1.txt')
CREATE CURSOR aa (a c(200),b c(30),c c(30))
APPEND FROM 'temp1.txt' TYPE DELIMITED
DELETE ALL FOR  AT('<td class=',A)=0
REPLACE ALL b WITH STREXTRACT(aa.a,'>','<',1)
REPLACE ALL b WITH IIF(LEN(STREXTRACT(aa.a,'>','<',2))>0,STREXTRACT(aa.a,'>','<',2),b)
GO TOP
BROWSE


2022-07-16 10:26
nbwww
Rank: 6Rank: 6
等 级:贵宾
威 望:10
帖 子:222
专家分:468
注 册:2021-1-9
得分:0 
"http://data.
地址需要做个循环自己替换一下
2022-07-16 10:40
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:5 
以下是引用ZHUHQ2020在2022-7-15 20:44:49的发言:

是啊,就是不知道怎么下。,看了以前的有关帖子,完全搞不懂语句的作用。

可以打开就可以取页面的东东

程序代码:
ie = CREATEOBJECT("internetexplorer.application")
page = 0
DO WHILE .t.
    page = page + 1
    ie.Navigate("http://data./market/xsjj/field/enddate/order/desc/ajax/1/free/1/page/"+TRANSFORM(page)+"/free/1/")
    DO WHILE ie.Busy OR ie.ReadyState!=4
        ?? " 请稍候 ...... "+TRANSFORM(page),TIME()+0h0D
        INKEY(1)
    ENDDO
    IF VARTYPE(ie.document)!="O"
        LOOP 
    ENDIF
    tbody = ie.document.getElementsByTagName("tbody").[0]
    IF tbody.rows.length == 0
        EXIT
    ENDIF 
    IF page==1
        thead = ie.document.getElementsByTagName("thead").[0]
        cmd = ""
        FOR EACH th IN thead.rows[0].cells
            fieldName = STRTRAN(th.innertext, 0h0D0A,"")
            fieldName = STRTRAN(fieldName,"%","%")
            cmd = cmd + "," + fieldName + " c(20)"
        ENDFOR
        cmd = "CREATE CURSOR tt (" + SUBSTR(cmd,2) + ")"
        EXECSCRIPT(cmd)
    ENDIF
    FOR EACH row IN tbody.rows
        cmd = ""
        FOR EACH cell IN row.cells
            cmd = cmd + ",'" + cell.innertext + "'"
        ENDFOR
        cmd = "INSERT INTO tt VALUES (" + SUBSTR(cmd,2) + ")"
        EXECSCRIPT(cmd)
    ENDFOR
ENDDO
ie.quit()
SELECT * FROM tt
2022-07-16 15:10
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 6楼 吹水佬
高!学习啦,谢谢!
2022-07-16 16:45
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 4楼 nbwww
好!学习啦,谢谢!
2022-07-16 16:53
ZHUHQ2020
Rank: 1
等 级:新手上路
帖 子:19
专家分:7
注 册:2020-4-28
得分:0 
首先郑重感谢断大和吹大的援手!回复来迟,是因为我在尝试时全都提示错误,一直在搜索相关提示内容和解决办法,可惜。
首先依据断大的提示尝试后结果:


其次:依据吹大提示尝试结果:


我用的是WIN10 VFP9
浏览器先前用的EDGE(就是WIN10主推的),后来尝试改为IE11同样没用。然后......

继续搜索、学习中......
2022-07-16 17:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:5 
程序代码:
CREATE CURSOR ths (序号 C(4), 股票代码 C(6), 股票简称 C(20), 限售解禁日期 C(10), 本期解禁数(股) C(20), 最新价 C(10), 解禁股市值(元) C(20), 占总股本比例(%) C(6), 是否为实际值 C(2))
FOR lns = 1 TO 6
    lcUrl = "http://data./market/xsjj/field/enddate/order/desc/ajax/1/free/1/page/" + TRANSFORM(lns) + "/free/1/"
    lcText = GETURL(lcUrl)
    IF EMPTY(lcText)
        MESSAGEBOX("网络错误......")
        RETURN 
    ENDIF 
    lcText = STREXTRACT(lcText, "        <tbody>" + CHR(13)+CHR(10), "                 </tbody>")
    ALINES(laText, lcText, 5, "<tr >" + CHR(13)+CHR(10), "<!", '<tr class="even">' + CHR(13)+CHR(10))
    FOR ln = 2 TO ALEN(laText) STEP 2
        ALINES(laStr, laText[ln])
        INSERT INTO ths VALUES (STREXTRACT(laStr[1], ">", "</td>"),;
                            STREXTRACT(laStr[2], ">", "</a></td>", 2),;
                            STREXTRACT(laStr[3], ">", "</a></td>", 2),;
                            STREXTRACT(laStr[4], ">", "</td>"),;
                            STREXTRACT(laStr[5], ">", "</td>"),;
                            STREXTRACT(laStr[6], ">", "</td>"),;
                            STREXTRACT(laStr[7], ">", "</td>"),;
                            STREXTRACT(laStr[8], ">", "</td>"),;
                            STREXTRACT(laStr[9], ">", "</td>"))
    ENDFOR
ENDFOR 
BROWSE 
RETURN



FUNCTION GETURL(UrlName)
    lcStr = ""
    oHTTP = CREATEOBJECT("WinHttp.WinHttpRequest.5.1")
    oHTTP.Open("GET", UrlName, .F.)
    oHTTP.SetRequestHeader("hexin-v", "A9h0LUHLDmk4dCLttBje8OMjqQ1lwT1XnicQyhLJJW7EKXZxutEM2-414Fth")
    oHTTP.Send()
    IF oHTTP.Status = 200
        lcStr = oHTTP.ResponseText
    ENDIF 
    RELEASE oHTTP
    RETURN lcStr
ENDFUNC 


[此贴子已经被作者于2022-7-16 18:22编辑过]


坚守VFP最后的阵地
2022-07-16 18:12



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




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

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