|
還在研究當中
現在先用AutoIt V3
配合之前Python 程式先暫度
#include <Date.au3>
#include <IE.au3>
#include <MsgBoxConstants.au3>
$backDays=2 ; 回抓日數
$outPath="D:\TSE\CLOSE" ; 輸出目錄
;註解
;我的環境需要先要先開一個 IE
;因為以下這些碼一點用都沒有
;Opt("WinTitleMatchMode", 2)
;ShellExecute("iexplore.exe", "about:blank")
;sleep(1000)
;WinWait("Internet Explorer",10)
;
;以下的參數要用 Autoit Window Info 抓
$winX=1280 ; IE 視窗大小的X值
$winY=1080 ; IE 視窗大小的Y值
$queryX=1190 ; IE視窗內查詢按鈕的X值
$queryY=390 ; IE視窗內查詢按鈕的Y值
$dnCSV_X=430 ; IE視窗內下載按鈕的X值
$dnCSV_Y=450 ; IE視窗內下載按鈕的Y值
$saveX=1012 ; 視窗下方儲存按鈕的X值
$saveY=1045 ; 視窗下方儲存按鈕的Y值
$saveAsX=1095 ; 視窗下方另儲新檔按鈕的X值
$saveAsY=1015 ; 視窗下方另儲新檔按鈕的Y值
;回圈
For $i = $backDays To 0 Step -1
;$SysDate=_DateTimeFormat(_NowDate( ), 1)
$sNewDate = _DateAdd('d', -$i, _NowCalcDate())
Local $aDays = StringSplit($sNewDate,"/")
$Year=$aDays[1]
$TYear=string(number($YEAR)-1911)
$MON=$aDays[2]
$DAY=$aDays[3]
Local $inTDate=$TYEAR&"/"&$Mon&"/"&$DAY
Local $inDate=$YEAR&"/"&$Mon&"/"&$DAY
Local $Date=$YEAR&$Mon&$DAY
;MsgBox($MB_SYSTEMMODAL, "", $inTDate& @CRLF & $inDate & @CRLF & $Date,10)
$oIE = _IECreate ("http://www.twse.com.tw/ch/trading/exchange/MI_INDEX/MI_INDEX.php", 1)
_IELoadWait($oIE)
Sleep(1000)
;Local $oForm = _IEFormGetObjByName ($oIE, "query-form")
;國曆日期
Local $oTDate = _IEGetObjByName ($oIE, "qdate")
_IEFormElementSetValue($oTDate, $inTDate)
;西元日期
Local $oDate = _IEGetObjByName ($oIE, "date-field-ad")
_IEFormElementSetValue($oDate, $inDate)
;分類項目
Local $oType= _IEGetObjByName ($oIE, "selectType")
_IEFormElementSetValue($oType, "ALLBUT0999")
Local $hWnd1 = WinWait("[CLASS:IEFrame]", "TWSE 臺灣證券交易所 > 每日收盤行情 - Internet Explorer", 10)
WinActivate( $hWnd1)
;IE視窗大小調整
WinMove($hWnd1, "", 0, 0, $winX, $winY)
;WinActivate( $hWnd1)
;模擬 查詢按鍵下壓
MouseClick ( "left", $queryX, $queryY ) ; 查詢
;等待資料更新
_IELoadWait($oIE)
sleep(1000)
;WinActivate( $hWnd1)
;模擬 下載CSV按鍵下壓
MouseClick ( "left", $dnCSV_X, $dnCSV_Y ) ; 下載 CSV
_IELoadWait($oIE)
sleep(500)
; 等待下方儲存提示
MouseClick ( "left", $saveX, $saveY) ; 存檔
MouseClick ( "left", $saveAsX, $saveAsY ) ; 另存新檔
;sleep(5000)
; 等待另存新檔新視窗
Local $hWndS = WinWait("另存新檔", "", 10)
sleep(100)
ControlSetText($hWndS,"","[CLASSNN:ToolbarWindow323]",$outPath) ; Set the name of the file to the original value.
;sleep(100)
ControlSetText($hWndS,"","[CLASSNN:Edit1]",$outPath&"\"&$Date&".csv")
ControlClick($hWndS,"","[CLASSNN:Button1]")
;如果有相同檔案存在選擇 取代
Local $hWndS1 = WinWait("確認另存新檔", "", 5)
Send (("!Y") ) ; 取代
_IEQuit($oIE) ; 關閉 IE
sleep(100)
next
|
評分
-
查看全部評分
|