标题:请帮忙,提取网上下载的数据,谢谢!
只看楼主
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
结帖率:90%
已结贴  问题点数:15 回复次数:32 
请帮忙,提取网上下载的数据,谢谢!
请大侠们帮忙,如何提取从网上下载的文件中的数据,谢谢!
网上图示:

折录部分文件:
</style><div>提前批/军校及国防生/本科一批</div><table class="table"><tr class="one"><td style="font-weight:bold;">类别/年份</td> <td style="font-weight:bold;">2015</td> <td style="font-weight:bold;">2014</td> </tr> <tr> <td>调档分</td> <td>543</td> <td>620</td> </tr> <tr>
     <td>平均分</td> <td></td> <td>620</td> </tr> <tr> <td>调档分位次</td> <td>12542</td> <td>76</td> </tr><tr> <td>平均分位次</td> <td></td> <td>76</td> </tr> <tr> <td>调档分线差</td> <td>0</td> <td>69</td> </tr> <tr> <td>平均分线差</td> <td></td><td>69</td> </tr> </table>
<style> .one {background: #82a8f9;} .one:hover {background: #82a8f9 !important;}
</style> <div>本科一批</div> <table class="table"> <tr class="one"> <td style="font-weight:bold;">类别/年份</td> <td style="font-weight:bold;">2016</td> <td style="font-weight:bold;">2015</td> <td style="font-weight:bold;">2014</td> </tr> <tr> <td>调档分</td> <td>638</td> <td>638</td> <td>628</td> </tr>
     <tr> <td> 平均分</td> <td>644</td> <td>644</td> <td>635</td> </tr> <tr> <td>调档分位次</td> <td>28</td> <td>32</td> <td>32</td> </tr> <tr> <td>平均分位次 </td> <td>13</td><td>17</td> <td>12</td> </tr>

希望得到的结果:

请指导,谢谢!
搜索更多相关主题的帖子: 国防生 style 网上 2014 本科 
2017-05-04 16:44
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
前次的数据是用IE浏览器下载的,https://bbs.bccn.net/thread-476550-1-1.html,我勉强凑合弄了一下,基本解决,但这次的数据用的是360极速浏览下载的,用VFP如何调用浏览器下载时转换成数据表的工作,对于我这个业余爱好者来说,就搞不清楚啦,请大侠帮忙,谢谢!
2017-05-04 16:50
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:15 
Clear
Set Safety Off
CRLF = Chr(13) + Chr(10)
cStr = ""
oIE = Createobject("Internetexplorer.Application")
oIE.Visible = .F.
oIE.Navigate("F:\我的桌面\BCCN\Web\aaa.html")  && Or Your Web
tStartSecond = Seconds()
Do While oIE.Busy = .T. Or oIE.ReadyState#4
    If Seconds() - tStartSecond > 10
        Exit
    Endif
    Inkey(0.5)
Enddo

*!*    How many table(s) in the HTTP ?
cStr = "===================================" + CRLF
cStr = cStr + "A total number of tables : " + Alltrim(Str(oIE.Document.getElementsByTagName("Table").Length)) + CRLF
cStr = cStr + "===================================" + CRLF

*!*    Enumerate each table.
For I = 0 To oIE.Document.getElementsByTagName("Table").Length - 1
    nTableNum = "oIE.Document.getElementsByTagName('table').[" + Alltrim(Str(I)) + "]"
    objCollection = &nTableNum
    cStr = cStr + "Table          : " + Alltrim(Str(I)) + CRLF
    objTable = objCollection

    nRow = objTable.Rows.Length  && the number of Rows
    nColumn = objTable.cells.Length/objTable.Rows.Length  && the number of Columns
    nCell = objTable.cells.Length  && the number of Cells
    cStr = cStr + "Rows number    : " + Alltrim(Str(nRow)) + CRLF
    cStr = cStr + "Columns number : " + Alltrim(Str(nColumn)) + CRLF
    cStr = cStr + "Cells number   : " + Alltrim(Str(nCell)) + CRLF
    cStr = cStr + "..................." + CRLF

    *!*    Enumerate each cell in this table.
    For Each objRow In objTable.Rows
        For J = 0 To objTable.Rows.Length - 1
            If Type("objRow.cells(J).Innertext") = "C"
                cStr = cStr + "  " + Padr(objRow.cells(J).Innertext, 24, ' ')
            Endif
        Endfor
        cStr = cStr + CRLF
    Next
    cStr = cStr + CRLF + "===================================" + CRLF

Next
oIE.Quit()
=Strtofile(cStr, "MyDoc.txt")
Modify File MyDoc.txt

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2017-05-04 18:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
回复 2楼 schtg
可以说说怎样下载的吗?

2017-05-04 19:25
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 3楼 红星二锅头
非常感谢,我试用一下,有问题在请教哈。
2017-05-05 07:11
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 4楼 吹水佬
仿照别人的代码,慢慢就改写成下面的代码,就开始下载,请指教,谢谢!
Local lcRemoteUrl,lcRemoteFile,lcLocalFile
lcRemoteFile="http://www.
lcLocalFile = "AA.txt"
Declare Integer DeleteUrlCacheEntry In Wininet.Dll String szUrl
Declare Integer URLDownloadToFile In urlmon.Dll Integer pCaller,String szURL,String szFileName,Integer dwReserved,Integer lpfnCB
If URLDownloadToFile(0,lcRemoteFile,lcLocalFile,0,0)<>0
   Messagebox('读取数据失败!',48,'信息提示')
   Return
ENDIF
2017-05-05 07:15
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 红星二锅头
     完全成功,非常感谢!
     也谢谢吹版主!
     请红星二锅头、吹水佬两位版主帮我看一下,只能下载文科的部分数据?如何下载理科的呢?谢谢!
2017-05-05 08:15
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
得分:0 
已经用了:oIE = Createobject("Internetexplorer.Application") 语句
为什么还要用:DeleteUrlCacheEntry、URLDownloadToFile API 函数?

oIE.Navigate("F:\我的桌面\BCCN\Web\aaa.html")  && 这里直接写入你的网址,比如:
oIE.Navigate("http:\www.\Default.html")  && Or Your Web

把要下载的理科的网址发上来

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2017-05-05 08:27
厨师王德榜
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:183
帖 子:942
专家分:4724
注 册:2013-2-16
得分:0 
不知道你那个网页有无WebService?如果有的话,也可以试试用Soap ToolKit  来获取字符,获取之后,对字符串的处理,是一样的。
部分核心代码示例:
程序代码:
PUBLIC oSOAP  as Object
oSOAP=Createobject("MSSOAP.soapclient30")  &&建立对象
LOCAL errExp && 用于Try 结构捕获错误……
DIMENSION  Rs(1) as String
* 这里以一个公共免费使用的天气网页来举例:
oSOAP.MSSoapInit("http://ws./WebServices/WeatherWS.asmx?wsdl")

TRY


 recode=SPACE(500)

 Rs = oSoap.getRegionProvince()
CATCH TO errexp
    IF errexp.errorno=1429 THEN

        MESSAGEBOX('错误号:'+LTRIM(STR(errexp.errorno)) + '  出错模块:' + ;
        errexp.PROCEDURE + '  出错行号:'+LTRIM(STR(errexp.lineno)) + ;
        '  错误的进一步描述:' + CHR(13) + ;
        '=====================================================================' + cHR(13) + ;
        +errexp.message , ;
        16,'提示:未成功连接互联网!')
    ENDIF

    IF errexp.errorno=1426 THEN

        MESSAGEBOX('错误号:'+LTRIM(STR(errexp.errorno)) + '  出错模块:' + ;
        errexp.PROCEDURE + '  出错行号:'+LTRIM(STR(errexp.lineno)) + ;
        '  错误的进一步描述:' + CHR(13) + ;
        '=====================================================================' + cHR(13) + ;
        +errexp.message , ;
        16,'提示:')
    ENDIF    

FINALLY 

IF NOT EMPTY(rs) THEN  &&  成功获取了字串(或数组或XML),以下是处理字串的代码,略……

*...
endif 

2017-05-05 09:06
schtg
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1355
专家分:2534
注 册:2012-2-29
得分:0 
回复 8楼 红星二锅头
这就是网址:http://www.
它好像不支持IE浏览器,所使用的是360的极速浏览器,所以我怕就不知道如何处理啦,请指教,谢谢!
2017-05-05 12:08



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




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

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