bhwhui 发表于 2014-4-4 17:45:50

一个简单的网页数据获取程序。

本帖最后由 bhwhui 于 2014-4-4 17:52 编辑

想从网页获取数据,形成TXT文件,供以后分析,是否有价值。
网址:1:http://www.shfe.com.cn/statements/dataview.html?paramid=kx
         2:http://www.czce.com.cn/portal/exchange/2014/datatradeholding/20140404.htm
         3:

输出的文本文件格式如下:交易所名称,日期,品种,期货公司名称,成交量,持买量,持卖量。
这个问题,本人不熟悉,高手估计1个晚上搞定了,呵呵。
第一次发帖购买,不知道怎么个流程,费用大家商量,行么?手机:13807798089

bhwhui 发表于 2014-4-4 17:52:21

本帖最后由 bhwhui 于 2014-4-4 18:03 编辑

有些网页需点击按钮提交,需要的是“日交易排名”,“仓单日报”,“持仓排名”数据。

bhwhui 发表于 2014-4-5 20:54:43

没人啊?看来要自己硬着头皮了...

121044246 发表于 2014-4-9 21:54:46

回复 1# bhwhui


    网站不是有‘导出EXCEL、导出TXT‘选项直接下载到本地不行?

acbs 发表于 2014-4-11 14:29:29

导出Excel数据表自己处理下就行了.

sxpms 发表于 2014-6-14 16:57:02

搞定没有?我也想找人编写啊

tubaba 发表于 2014-6-16 15:10:49

本帖最后由 tubaba 于 2014-6-16 15:12 编辑

不难的,曾写过一个定期从服务器下载文件,并做数据比较的程序,写成计划任务的形式执行就可以了

feilong 发表于 2014-6-16 18:45:44

文本好获取

$a = StringReplace(BinaryToString(InetRead("http://www.czce.com.cn/portal/exchange/2014/datatradeholding/"&@YEAR&@MON&@MDAY&".txt")),@LF,@crlf)
$b = StringReplace(BinaryToString(InetRead("http://www.shfe.com.cn/data/dailydata/kx/kx"&@YEAR&@MON&@MDAY&".dat"),4),@LF,@crlf)

剩下的自己处理一下格式就行,一个是纯文本,另一个是json

tubaba 发表于 2014-6-24 08:30:38

下载文件Func _GetFile()
        TrayTip("准备工作", "下载所需文件~", 30, 1)
        _GUICtrlTab_ClickTab($Tab, 0)
        Local $sUser = GUICtrlRead($Tab1_Input1)
        Local $sPassword = GUICtrlRead($Tab1_Input2)
        If DirGetSize(GUICtrlRead($Tab1_Input3)) = -1 Then DirCreate(GUICtrlRead($Tab1_Input3))
        Local $sFile = GUICtrlRead($Tab1_Input3) & '\全部应用系统的报表' & @YEAR & @MON & @MDAY & '.xls'
        _GUICtrlEdit_InsertText($iexport, '======================' & @LF)
        _GUICtrlEdit_InsertText($iexport, '正在登录站点.' & _Gettime() & @LF)
        _IENavigate($oIE, 'http://10.238.1.29:7001/TMS/')
        Local $oForm = _IEFormGetObjByName($oIE, "loginForm")
        Local $oPrNo = _IEFormElementGetObjByName($oForm, "oprNo")
        Local $oPassWord = _IEFormElementGetObjByName($oForm, "passWord")
        _IEFormElementSetValue($oPrNo, $sUser)
        _IEFormElementSetValue($oPassWord, $sPassword)
        _IEFormSubmit($oForm)
        If @error Then
                _GUICtrlEdit_InsertText($iexport, '无法导航至指定地址,提交表单失败.' & _Gettime() & @LF)
                        FileWriteLine($LOG, _Gettime() & '无法导航至指定地址,提交表单失败.')
                Return SetError(1, 0, 0)
        EndIf
        $sHTML = _IEDocReadHTML($oIE)
;~         FileWrite('2.txt', $sHTML)
        If Not StringInStr($sHTML, 'welcome.jsp') Then
                _GUICtrlEdit_InsertText($iexport, '登录站点失败.' & _Gettime() & @LF)
                FileWriteLine($LOG, _Gettime() & '登录站点失败.')
                Return SetError(1, 0, 0)
        Else
                _GUICtrlEdit_InsertText($iexport, '登录站点成功.' & _Gettime() & @LF)
        EndIf
        _GUICtrlEdit_InsertText($iexport, '进入指定页面.' & _Gettime() & @LF)
        _IENavigate($oIE, 'http://10.238.1.29:7001/TMS/fpages/report/ftl/reportTml.ftl?_cds_=0')
        If @error Then
                _GUICtrlEdit_InsertText($iexport, '请求失败,请重试.' & _Gettime() & @LF)
                FileWriteLine($LOG, _Gettime() & '地址打开失败.')
                Return SetError(1, 0, 0)
        EndIf
        _GUICtrlEdit_InsertText($iexport, '请求所需文件.' & _Gettime() & @LF)
        $oIE.document.getElementById('Report_ReportTml_interface_dataset_btnSubmit' ).click()
        _IELoadWait($oIE)
        If @error Then
                _GUICtrlEdit_InsertText($iexport, '请求失败,请重试.' & _Gettime() & @LF)
                FileWriteLine($LOG, _Gettime() & '地址打开失败.')
                Return SetError(1, 0, 0)
        EndIf
        _GUICtrlEdit_InsertText($iexport, '得到下载链接.' & _Gettime() & @LF)
        _GUICtrlEdit_InsertText($iexport, '下载文件到"' & $sFile & '"' & _Gettime() & @LF)
        Local $hDownload = InetGet('http://10.238.1.29:7001/TMS/filedownload/FileDownloadAction.do?param=tml', $sFile, 1 + 4, 1)
        Do
                Sleep(250)
        Until InetGetInfo($hDownload, 2) ; 检查完成的下载.
        Local $aData = InetGetInfo($hDownload) ; 获取全部信息.
        InetClose($hDownload) ; 关闭句柄以释放资源.
        _GUICtrlEdit_InsertText($iexport, '读取字节:' & $aData & @LF)
        If $aData Then
                _GUICtrlEdit_InsertText($iexport, '文件下载成功' & _Gettime() & @LF)
        Else
                _GUICtrlEdit_InsertText($iexport, '文件下载失败,请手动下载' & _Gettime() & @LF)
                FileWriteLine($LOG, _Gettime() & '文件下载失败.')
                Return SetError(2, 0, 0)
        EndIf
        Return $sFile
EndFunc   ;==>_GetFile

dunphy 发表于 2014-9-25 00:03:40

回复 7# tubaba


    如遇到验证码怎么办?对了。源码前辈能不能分享

qddoit 发表于 2014-12-16 04:00:53

fffffffffffffffffffffff

kemyliu 发表于 2015-7-1 23:57:09

这个不错,我喜欢
页: [1]
查看完整版本: 一个简单的网页数据获取程序。