找回密码
 加入
搜索
楼主: 繁星

原生CDP操作浏览器

[复制链接]
 楼主| 发表于 2026-5-17 16:51:08 | 显示全部楼层
fyq 发表于 2026-5-17 02:52
运行If Not _AUCDP_Navigate("https://cn.bing.com") Then _Fail("启动浏览器并导航")成功。但有一个无用的 ...

disable-blink-features=AutomationControlled是为了反爬虫,我这边测试没有警告,edge://policy默认策略设置差异导致的,这个flag最新版我已经从默认参数中移除了,为了得到同样的效果可以在_AUCDP_Navigate启动之后加上_AUCDP_EnableStealth()等同于disable-blink-features=AutomationControlled的效果,不会再显示警告了,下载最新版
  1. _AUCDP_Navigate("about:blank")
  2. _AUCDP_EnableStealth() ; ← 关键
  3. _AUCDP_Goto("https://xxx.com")
复制代码
发表于 2026-5-18 08:21:13 | 显示全部楼层
繁星 发表于 2026-5-15 16:22
跑下测试代码看看卡在哪里了

可以了,是这个dll文件,之前放在Myinclude里面没认到,必须放在脚本同一目录。

还一个问题就是论坛上直接点复制的代码,粘贴到SciTE里面,msgbox和exit前面都是空格,必须得换成tab,不然代码语法报错。
SciTE 版本:32-bit  版本 4.4.6      Mar 16 2021 13:51:55
发表于 2026-5-18 16:45:38 | 显示全部楼层
繁星 发表于 2026-5-17 16:51
disable-blink-features=AutomationControlled是为了反爬虫,我这边测试没有警告,edge://policy默认策略 ...

非常完美了,谢谢了。
发表于 2026-5-18 21:55:47 | 显示全部楼层
测试论坛的时候用的是你最新的代码.验证码老是错误的
 楼主| 发表于 2026-5-19 00:28:12 | 显示全部楼层
vspeitao@126.co 发表于 2026-5-18 08:21
可以了,是这个dll文件,之前放在Myinclude里面没认到,必须放在脚本同一目录。

还一个问题就是论坛上直 ...

这锅我不背,是论坛问题,不要点右上角复制按钮,手动用鼠标选择复制出来就没问题了
 楼主| 发表于 2026-5-19 00:54:35 | 显示全部楼层
xz00311 发表于 2026-5-18 21:55
测试论坛的时候用的是你最新的代码.验证码老是错误的

下载最新版本UDF库,配合登录脚本试试

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2026-6-24 21:46:17 | 显示全部楼层
这是个牛掰的大佬
发表于 2026-7-6 14:39:55 | 显示全部楼层
你好,请教下使用原生CDP怎么抓取网页中的表格呢。我的思路是使用_AUCDP_GetPageContent后正则匹配,是否有更便捷的方式呢,谢谢
 楼主| 发表于 2026-7-6 21:26:25 | 显示全部楼层
锋城未逾年 发表于 2026-7-6 14:39
你好,请教下使用原生CDP怎么抓取网页中的表格呢。我的思路是使用_AUCDP_GetPageContent后正则匹配,是否有 ...

使用最强大的功能JS
  1. ; #FUNCTION# ====================================================================
  2. ; Name ..........: _TableGetData
  3. ; Description ...: 提取页面中的表格数据,返回 JSON 格式字符串。
  4. ; Syntax ........: _TableGetData([$sSelector = "table"[, $iIndex = 0[, $bAll = False]]])
  5. ; Parameters ....: $sSelector - CSS 选择器,默认 "table"
  6. ;                  $iIndex    - 第几个匹配表格 (0 起算),仅当 $bAll=False 时有效
  7. ;                  $bAll      - True = 返回所有匹配表格的数据
  8. ; Return values .: 成功       - JSON 字符串。
  9. ;                               单表格: [["行1列1","行1列2"],["行2列1","行2列2"]]
  10. ;                               全部:   [[表格1],[表格2],...]
  11. ;                  失败       - 返回 0,并设置 @error = 1
  12. ; Remarks .......: 不包含 JSON 解析,返回的字符串请自行用 Json_Decode 等库处理。
  13. ; ====================================================================
  14. Func _TableGetData($sSelector = "table", $iIndex = 0, $bAll = False)
  15.     Local $sEscaped = StringReplace($sSelector, "", "\")
  16.     $sEscaped = StringReplace($sEscaped, "'", "\'")

  17.     Local $sJS
  18.     If $bAll Then
  19.         $sJS = _
  20.             "(function(){" & _
  21.             "    var tables = document.querySelectorAll('" & $sEscaped & "');" & _
  22.             "    var result = [];" & _
  23.             "    for (var t = 0; t < tables.length; t++) {" & _
  24.             "        var table = tables[t];" & _
  25.             "        var data = [];" & _
  26.             "        for (var i = 0; i < table.rows.length; i++) {" & _
  27.             "            var row = table.rows[i];" & _
  28.             "            var rowData = [];" & _
  29.             "            for (var j = 0; j < row.cells.length; j++) {" & _
  30.             "                rowData.push(row.cells[j].innerText.trim());" & _
  31.             "            }" & _
  32.             "            data.push(rowData);" & _
  33.             "        }" & _
  34.             "        result.push(data);" & _
  35.             "    }" & _
  36.             "    return result;" & _
  37.             "})()"
  38.     Else
  39.         $sJS = _
  40.             "(function(){" & _
  41.             "    var tables = document.querySelectorAll('" & $sEscaped & "');" & _
  42.             "    if (tables.length <= " & $iIndex & ") return null;" & _
  43.             "    var table = tables[" & $iIndex & "];" & _
  44.             "    var data = [];" & _
  45.             "    for (var i = 0; i < table.rows.length; i++) {" & _
  46.             "        var row = table.rows[i];" & _
  47.             "        var rowData = [];" & _
  48.             "        for (var j = 0; j < row.cells.length; j++) {" & _
  49.             "            rowData.push(row.cells[j].innerText.trim());" & _
  50.             "        }" & _
  51.             "        data.push(rowData);" & _
  52.             "    }" & _
  53.             "    return data;" & _
  54.             "})()"
  55.     EndIf

  56.     Local $sJsonResult = _AUCDP_Evaluate($sJS)
  57.     If @error Or $sJsonResult = "" Or $sJsonResult = "null" Then
  58.         Return SetError(1, 0, 0)
  59.     EndIf
  60.     Return $sJsonResult
  61. EndFunc
复制代码
发表于 2026-7-7 08:03:27 | 显示全部楼层
繁星 发表于 2026-7-6 21:26
使用最强大的功能JS

感谢老师的回复,学习了
发表于 2026-7-24 01:36:18 | 显示全部楼层
很不错,顶个
发表于 2026-9-6 13:21:53 | 显示全部楼层
本帖最后由 fyq 于 2026-9-8 09:31 编辑

回复错误,删除了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2026-9-26 01:08 , Processed in 0.085291 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表