使用最强大的功能JS
- ; #FUNCTION# ====================================================================
- ; Name ..........: _TableGetData
- ; Description ...: 提取页面中的表格数据,返回 JSON 格式字符串。
- ; Syntax ........: _TableGetData([$sSelector = "table"[, $iIndex = 0[, $bAll = False]]])
- ; Parameters ....: $sSelector - CSS 选择器,默认 "table"
- ; $iIndex - 第几个匹配表格 (0 起算),仅当 $bAll=False 时有效
- ; $bAll - True = 返回所有匹配表格的数据
- ; Return values .: 成功 - JSON 字符串。
- ; 单表格: [["行1列1","行1列2"],["行2列1","行2列2"]]
- ; 全部: [[表格1],[表格2],...]
- ; 失败 - 返回 0,并设置 @error = 1
- ; Remarks .......: 不包含 JSON 解析,返回的字符串请自行用 Json_Decode 等库处理。
- ; ====================================================================
- Func _TableGetData($sSelector = "table", $iIndex = 0, $bAll = False)
- Local $sEscaped = StringReplace($sSelector, "", "\")
- $sEscaped = StringReplace($sEscaped, "'", "\'")
- Local $sJS
- If $bAll Then
- $sJS = _
- "(function(){" & _
- " var tables = document.querySelectorAll('" & $sEscaped & "');" & _
- " var result = [];" & _
- " for (var t = 0; t < tables.length; t++) {" & _
- " var table = tables[t];" & _
- " var data = [];" & _
- " for (var i = 0; i < table.rows.length; i++) {" & _
- " var row = table.rows[i];" & _
- " var rowData = [];" & _
- " for (var j = 0; j < row.cells.length; j++) {" & _
- " rowData.push(row.cells[j].innerText.trim());" & _
- " }" & _
- " data.push(rowData);" & _
- " }" & _
- " result.push(data);" & _
- " }" & _
- " return result;" & _
- "})()"
- Else
- $sJS = _
- "(function(){" & _
- " var tables = document.querySelectorAll('" & $sEscaped & "');" & _
- " if (tables.length <= " & $iIndex & ") return null;" & _
- " var table = tables[" & $iIndex & "];" & _
- " var data = [];" & _
- " for (var i = 0; i < table.rows.length; i++) {" & _
- " var row = table.rows[i];" & _
- " var rowData = [];" & _
- " for (var j = 0; j < row.cells.length; j++) {" & _
- " rowData.push(row.cells[j].innerText.trim());" & _
- " }" & _
- " data.push(rowData);" & _
- " }" & _
- " return data;" & _
- "})()"
- EndIf
- Local $sJsonResult = _AUCDP_Evaluate($sJS)
- If @error Or $sJsonResult = "" Or $sJsonResult = "null" Then
- Return SetError(1, 0, 0)
- EndIf
- Return $sJsonResult
- EndFunc
复制代码 |