返回列表 上一主題 發帖

請問如何抓取javascript的*.csv檔案?

太感謝了!

我發現有些表格是多於一筆資料的,所以一個管制編號的資料有可能會有一筆、兩筆甚至10筆,例如這裡:

http://prtr.epa.gov.tw/resultEMS.aspx?emsno=E4901607&tab=Panel5

我爬了一下文並google,本來想用ResultRange.Rows.Count這個指令來算table的列數後,先以Range().EntireRow.insert插入所需要的列數,然後再以ResultRange.Rows(i)加入數據,但怎麼試都是空白,不知道大大有沒有好的辦法?

謝謝

TOP

回復 3# torrent



試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Sh As Worksheet, Rng As Range
  4.     Application.ScreenUpdating = False
  5.     Application.DisplayAlerts = False
  6.     Set Rng = Sheets("Sheet1").Range("A2")
  7.     On Error Resume Next
  8.     Set Sh = Sheets.Add
  9.     With Sh.QueryTables.Add("URL;http://prtr.epa.gov.tw/resultEMS.aspx?emsno=" & Rng & "&tab=Panel5", Sh.[A1])
  10.         .WebSelectionType = xlSpecifiedTables
  11.         .WebFormatting = xlWebFormattingNone
  12.         .WebTables = """GridView5"""
  13.         .WebPreFormattedTextToColumns = True
  14.         .WebConsecutiveDelimitersAsOne = True
  15.         .WebSingleBlockTextImport = False
  16.         .WebDisableDateRecognition = False
  17.         .WebDisableRedirections = False
  18.         .Refresh BackgroundQuery:=False
  19.     End With
  20.     Do While Rng <> ""
  21.         With Sh.QueryTables(1)
  22.             Rng.Offset(, 1).Range("A1:I1").Value = IIf(Err.Number = 0, Sh.QueryTables(1).ResultRange.Rows(2).Value, "")
  23.             Err.Clear
  24.             Set Rng = Rng.Offset(1)
  25.             .Connection = "URL;http://prtr.epa.gov.tw/resultEMS.aspx?emsno=" & Rng & "&tab=Panel5"
  26.             .Refresh BackgroundQuery:=False
  27.         End With
  28.     Loop
  29.     Sh.Delete
  30.     Application.DisplayAlerts = True
  31.     Application.ScreenUpdating = True
  32. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

好像是耶,我前幾天試還正常。

TOP

回復 1# torrent
系統忙碌中,請稍後再次查詢。

系統壞了嗎,手動都不能下載。。。

TOP

        靜思自在 : 【蒙蔽的自由】人常在什麼都可以自由自在的時候,卻被這種隨心所欲的自由蒙蔽,虛擲時光而毫無覺知。
返回列表 上一主題