ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[­ì³Ð] ¶°«O¸ê®Æ(§ïª©«á)

¥»©«³Ì«á¥Ñ quickfixer ©ó 2018-3-28 18:14 ½s¿è

§Ú»{¬°³oÃ䪺µ{¦¡§¹¦¨«×¸û°ª
¦Ó¥B§ó·sµ{¦¡«D±`ªº§Ö,®É¶¡¤ñ¼Ó¥DÁÙ¦­´X¤Ñ
¥i±¤¨S¤°»ò¤H¬Ý
https://www.mobile01.com/topicdetail.php?f=511&t=4737630

TOP

¥»©«³Ì«á¥Ñ quickfixer ©ó 2018-3-28 22:11 ½s¿è

¦^´_ 12# iamaraymond


   ¥L¬Ý°_¨Ó¹³¬OªÑ²¼ªù¥~º~ :lol
³t«×ªº¸Ü¡A¥L244¼Ó¦³ª±¹L¤@­Ó8¶}excel , 20¦h¬í´N§ìª±3¤d¦hµ§¶°«O¸ê®Æ XD
¥i±¤ºô¯¸§ïª©«á¡A¥L¨S§ó·s¡A¨º­Ó½d¨Ò¨S¿ìªkª±¤F

§Aªºµ{¦¡¦h¥[¤Won error goto©Î¬Oon error resume ·|¤ñ¸û¦n
cji3cj6xu6  ªº°ÝÃD2 ¡A§Ú¤]¦³¹J¨ì

³Ìªñºô¯¸·|¬ðµM¥X²{¤°»ò¦w¥þ©Ê³s½u¿ù»~ªº
¦b³o¤@¦æ´N·|¥X¿ù
.send "REQ_OPR=qrySelScaDates"

TOP

¦^´_ 2# joey0415

ÁÂÁ§A¤À¨É³o¡A2015¦~´N¦³ªººô¯¸,¤µ¤Ñ¤~ª¾¹D­ì¨Ó¦³¾ã²z¦nªº¸ê®Æ¥i¥H¤U¸ü
    https://data.gov.tw/dataset/11452

TOP

¥»©«³Ì«á¥Ñ quickfixer ©ó 2022-9-10 01:08 ½s¿è

¦^´_ 21# dino123

°Ñ¦Ò¸ê®Æ
    https://www.mobile01.com/topicdetail.php?f=511&t=4737630&p=125
    https://www.mobile01.com/topicdetail.php?f=511&t=4737630&p=126

  1. Sub Get_tdcc()
  2.    
  3.    
  4.     Dim Html As Object, GetXml As Object, r As Integer, url_a As String, temp() As String, ttt As Double
  5.     Dim SYNCHRONIZER_TOKEN As String, firDate, StockID As String, StockName As String
  6.     Set Html = CreateObject("htmlfile")
  7.     Set GetXml = CreateObject("msxml2.xmlhttp")
  8.    
  9.    
  10.     ttt = Timer
  11.     Application.ScreenUpdating = False
  12.     On Error GoTo redownload

  13.    
  14.     'StockID = "2002"
  15.     StockID = "2330"
  16.    
  17. retry1:

  18.     With GetXml
  19.         .Open "GET", "https://www.tdcc.com.tw/portal/zh/smWeb/qryStock", False
  20.         .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  21.         .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
  22.         .send
  23.         
  24.         Html.body.innerhtml = .responsetext
  25.         firDate = Split(Trim(Html.getElementById("scaDate").innertext), " ")
  26.         
  27.         If IsEmpty(firDate) = True Then
  28.            Debug.Print "get day error"
  29.            Delaytick (0.5)
  30.            r = r + 1
  31.            Debug.Print r
  32.            If r > 3 Then
  33.                MsgBox "½u¤W¤é´ÁµLªk§ó·s¡A½Ðµy«á­«¸Õ", vbOKOnly, "Error"
  34.                Exit Sub
  35.            End If
  36.            If Err.Number <> 0 Then
  37.                Debug.Print Err.Description
  38.            End If
  39.            On Error GoTo -1
  40.            Err.Clear
  41.            GoTo retry1
  42.         End If
  43.         
  44.     End With
  45.    
  46.    
  47.    
  48.    
  49. retry2:
  50.    
  51.     For d = 0 To 9 'ªñ¤Q©P
  52.    
  53.         With GetXml
  54.             .Open "GET", "https://www.tdcc.com.tw/portal/zh/smWeb/qryStock", False
  55.             .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  56.             .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
  57.             .send
  58.         
  59.             Html.body.innerhtml = .responsetext
  60.             SYNCHRONIZER_TOKEN = Html.getElementById("SYNCHRONIZER_TOKEN").Value
  61.    
  62.         
  63.         End With
  64.            
  65.          
  66.         url_a = "SYNCHRONIZER_TOKEN=" & SYNCHRONIZER_TOKEN & "&SYNCHRONIZER_URI=%2Fportal%2Fzh%2FsmWeb%2FqryStock&method=submit&firDate=" & firDate(d) & "&scaDate=" & firDate(d) & "&sqlMethod=StockNo&stockNo=" & StockID & "&stockName="
  67.         
  68.         With GetXml
  69.             .Open "POST", "https://www.tdcc.com.tw/portal/zh/smWeb/qryStock", False
  70.             .setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  71.             .setRequestHeader "Referer", "https://www.tdcc.com.tw/portal/zh/smWeb/qryStock"
  72.             .setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
  73.             .send (url_a)
  74.             
  75.             Html.body.innerhtml = .responsetext
  76.         
  77.             If d = 0 Then
  78.                 StockName = Replace(Split(Split(.responsetext, "ÃÒ¨é¥N¸¹¡G")(1), "</p>")(0), Chr(10), "")
  79.                 StockName = "ÃÒ¨é¥N¸¹¡G" & Replace(Replace(StockName, " ", ""), "<br>", " ")
  80.                 Sheets("¤u§@ªí1").Cells.Clear
  81.                 Sheets("¤u§@ªí1").Columns.ColumnWidth = 16
  82.                 Sheets("¤u§@ªí1").Range("a1") = StockName
  83.             End If
  84.                
  85.             Set Table = Html.all.tags("table")(1).Rows
  86.             
  87.             If Table(1).Cells(0).innertext = "¬dµL¦¹¸ê®Æ" Then
  88.                 Delaytick (0.3)
  89.                 r = r + 1
  90.                 If r > 5 Then
  91.                     MsgBox StockID & vbNewLine & firDate & "¡A¦¹¤é´ÁµL¸ê®Æ©Î³s½u²§±`¡A½Ðµy«á¦A¸Õ", vbOKOnly, "Error"
  92.                     Set Table = Nothing
  93.                     Set Html = Nothing
  94.                     Set GetXml = Nothing
  95.                     Application.ScreenUpdating = True
  96.                     Exit Sub
  97.                 End If
  98.                 GoTo retry2
  99.             End If
  100.             
  101.                
  102.             ReDim temp(1 To Table.Length - 1, Table(2).Cells.Length - 1)
  103.                
  104.             With Sheets("¤u§@ªí1")
  105.                
  106.             
  107.                 For i = 1 To Table.Length - 1
  108.                     
  109.                     For j = 0 To Table(i).Cells.Length - 1
  110.                         temp(i, j) = Table(i).Cells(j).innertext
  111.                     Next j
  112.                 Next i
  113.             
  114.                 .Range("a2").Offset(, d * 5) = firDate(d)
  115.                 .Range("a3:e3").Offset(, d * 5) = Array("§Ç", "«ùªÑ", "¤H¼Æ", "ªÑ¼Æ", "¤ñ¨Ò%")
  116.                 .Range(.Cells(4, 1), .Cells(i + 2, 5)).Offset(, d * 5) = temp()
  117.             
  118.             End With

  119.         End With
  120.    
  121.     Next d
  122.    
  123.     Set Table = Nothing
  124.     Set Html = Nothing
  125.     Set GetXml = Nothing
  126.     Application.ScreenUpdating = True
  127.    
  128.     Debug.Print Timer - ttt
  129.     Exit Sub
  130.    
  131. redownload:
  132.     r = r + 1
  133.     Debug.Print "http 404"
  134.     Delaytick (1.3)
  135.     If r > 3 Then
  136.        MsgBox "³s½u²§±`¡A½Ðµy«á¦A¸Õ", vbOKOnly, "Error"
  137.       
  138.        'Stop 'debug
  139.       
  140.        Set Table = Nothing
  141.        Set Html = Nothing
  142.        Set GetXml = Nothing
  143.        Application.ScreenUpdating = True
  144.        Exit Sub
  145.    
  146.     End If
  147.    
  148.     If Err.Number <> 0 Then
  149.         Debug.Print Err.Description
  150.     End If
  151.    
  152.     On Error GoTo -1
  153.     Err.Clear
  154.    
  155.     GoTo retry2


  156. End Sub

  157. Sub Delaytick(setdelay As Single)
  158.    
  159.     Dim StartTime As Double, NowTime As Double
  160.     StartTime = Timer * 100
  161.     setdelay = setdelay * 100
  162.     Do
  163.       NowTime = Timer * 100
  164.       DoEvents
  165.     Loop Until NowTime - StartTime > setdelay
  166.    
  167. End Sub
½Æ»s¥N½X

TOP

¦^´_ 24# dino123


²{¦bsend 2¦¸,­n¦h§ì¤@¦¸°ÊºAªºkey    SYNCHRONIZER_TOKEN
©Ò¥H§ïª©«á¤U¸ü®É¶¡·|¬O§ïª©«eªº2­¿
§A¨SÀɮקڤ£ª¾¹Dcell¤º¬O¤°»òªF¦è

22#  9§ï¦¨51,´N¬O1¦~
For d = 0 To 9 'ªñ¤Q©P
For d = 0 To 51

TOP

¦^´_ 25# quickfixer


    ­q¥¿,¤£¯à¥Î51,¦³®É­Ô¬O50
­×¥¿¥Îubound
For d = 0 To UBound(firDate)

TOP

        ÀR«ä¦Û¦b : ½_ÁJµ²±o¶V¹¡º¡¡A¶V·|©¹¤U««¡A¤@­Ó¤H¶V¦³¦¨´N¡A´N­n¶V¦³Á¾¨Rªº¯ÝÃÌ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD