找回密码
 加入
搜索
查看: 11366|回复: 11

[求购] 一个简单的网页数据获取程序。

 火.. [复制链接]
发表于 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/ex ... olding/20140404.htm
         3:

输出的文本文件格式如下:交易所名称,日期,品种,期货公司名称,成交量,持买量,持卖量。
这个问题,本人不熟悉,高手估计1个晚上搞定了,呵呵。
第一次发帖购买,不知道怎么个流程,费用大家商量,行么?手机:13807798089
单选投票, 共有 0 人参与投票
0% (0)
0% (0)
0% (0)
您所在的用户组没有投票权限
 楼主| 发表于 2014-4-4 17:52:21 | 显示全部楼层
本帖最后由 bhwhui 于 2014-4-4 18:03 编辑

有些网页需点击按钮提交,需要的是“日交易排名”,“仓单日报”,“持仓排名”数据。
 楼主| 发表于 2014-4-5 20:54:43 | 显示全部楼层
没人啊?看来要自己硬着头皮了...
发表于 2014-4-9 21:54:46 | 显示全部楼层
回复 1# bhwhui


    网站不是有‘导出EXCEL、导出TXT‘选项直接下载到本地不行?
发表于 2014-4-11 14:29:29 | 显示全部楼层
导出Excel数据表自己处理下就行了.
发表于 2014-6-14 16:57:02 | 显示全部楼层
搞定没有?我也想找人编写啊
发表于 2014-6-16 15:10:49 | 显示全部楼层
本帖最后由 tubaba 于 2014-6-16 15:12 编辑

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 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
发表于 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[0] & @LF)
        If $aData[3] 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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2014-9-25 00:03:40 | 显示全部楼层
回复 7# tubaba


    如遇到验证码怎么办?  对了。源码前辈能不能分享
发表于 2014-12-16 04:00:53 | 显示全部楼层
fffffffffffffffffffffff
发表于 2015-7-1 23:57:09 | 显示全部楼层
这个不错,我喜欢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 11:53 , Processed in 0.082629 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表