注册 登录
编程论坛 VFP论坛

无头 WebView2(2025.12.18 更新)

吹水佬 发布于 5 天前 10:58, 919 次点击
只有本站会员才能查看附件,请 登录

只有本站会员才能查看附件,请 登录

2025.12.18 更新
封装成vfp类,添加demo:获取cookies、获取js脚本代码,方便理解使用。
只有本站会员才能查看附件,请 登录





[此贴子已经被作者于2025-12-18 07:38编辑过]

52 回复
#2
schtg5 天前 19:49
谢谢分享!
#3
ykxby0014 天前 07:27
大佬,WebView2 + VFP 值得搞一搞
#4
sych4 天前 09:21
谢谢分享
#5
easyppt4 天前 09:27
吹版,搞个群,大家众筹请您把 WebView2 和 VFP 深度结合
现在都是WEB应用的天下,VFP都没有个像样的浏览器交互,真不行,简单的交互又满足不了需求

吹版,获取 header 头 搞个例子

现在WEB开发大部分验证信息都是放在header 中的

[此贴子已经被作者于2025-12-18 08:14编辑过]

#6
laowan0014 天前 09:28
#7
ykxby0014 天前 09:33
回复 5楼 easyppt
强烈支持,
#8
sych4 天前 10:22
只有本站会员才能查看附件,请 登录

我的win7系统,出现这个情况
#9
DANSON4 天前 10:26
吹总威武
#10
吹水佬4 天前 10:36
以下是引用easyppt在2025-12-15 09:27:28的发言:

吹版,搞个群,大家众筹请您把 WebView2 和 VFP 深度结合
现在都是WEB应用的天下,VFP都没有个像样的浏览器交互,真不行,简单的交互又满足不了需求

编程的东西是要时间和精力,尤其是对新生事物。
老头子一个,身体、精力、时间、家事等,有心无力了,抽点空余小打小闹玩玩还可以。
其实之前那个 WebView2 demo 基本包含常用的功能,也有几个WEB与VFP交互示例,有源码可以参考改造。




[此贴子已经被作者于2025-12-15 10:46编辑过]

#11
吹水佬4 天前 10:54
以下是引用sych在2025-12-15 10:22:42的发言:

我的win7系统,出现这个情况

win7基本上无望,能用也只是旧版的WebView2,新版的WebView2可能有些功能用不了。
#12
sych4 天前 10:58
好的,明白了,谢谢吹版
#13
吹水佬4 天前 11:09
回复 12楼 sych
Webview2 支持的 Windows作系统与 Microsoft Edge 支持的作系统相同。
有关其他受支持的作系统的详细信息,请参阅 Microsoft Edge 支持的作系统:
https://learn.

#14
kangss4 天前 15:22
以下是引用sych在2025-12-15 10:22:42的发言:
我的win7系统,出现这个情况

win10系统。
win7的话,百度下载按装1百多兆的“MicrosoftEdgeWebView2 x86 离线安装”试试,这个是WebView2的“内核”
#15
sych4 天前 19:57
我电脑上安装的有这个,还是提示错误
只有本站会员才能查看附件,请 登录
#16
kangss3 天前 11:18
以下是引用sych在2025-12-15 19:57:27的发言:

我电脑上安装的有这个,还是提示错误

只有本站会员才能查看附件,请 登录


我说的这个东西是“Runtime”,不知道你电脑上是否还需要安装这个。
#17
DANSON3 天前 13:10
只有本站会员才能查看附件,请 登录
我为什么总是这样,无法下载?

#18
吹水佬前天 00:09
1楼更新
改用同步事件,vfp用起来简单点。
#19
sych前天 09:53
以下是引用kangss在2025-12-15 15:22:09的发言:


win10系统。
win7的话,百度下载按装1百多兆的“MicrosoftEdgeWebView2 x86 离线安装”试试,这个是WebView2的“内核”
谢谢指教,安装这个后,win7下也可以正常运行了
#20
SATANA前天 10:34
访问其他网站  显示null
#21
DANSON前天 11:12
回复 楼主 吹水佬
https://
thread-index: Adw5r6B5uOxiPEuTSiqcFVfs+SQcdA==

吹版,像这种网址,各种模式都抓不到数据,如何解决

只有本站会员才能查看附件,请 登录


只有本站会员才能查看附件,请 登录
#22
吹水佬前天 11:14
回复 21楼 DANSON
要自己写代码去爬
玩这些东东一定要学会web的东西,起码要懂点 html、js 等。

[此贴子已经被作者于2025-12-17 11:16编辑过]

#23
DANSON前天 11:22
回复 22楼 吹水佬
当然是自己写了完整的代码,也尝试了你的DLL,都抓不到,绝大多数网址都没问题,像以下的网址,就没办法抓到,因为源文件(源码)里根本就没有网页内容数据,各位兄弟可有解决办法:

https://
thread-index: Adw5r6B5uOxiPEuTSiqcFVfs+SQcdA==

https://jms.
thread-index: Adw5r7558idvI2p6T3Wq9+XhT7NAtw==

https://news.
thread-index: Adw5r7RfgzqfPa42RkWCARgVBnjcig==

https://hdact.linker.cc/bzyuntingActivity_new/share/information.html?newsId=13282&inApp=0&providerCode=21010&version=6.13.1&appCode=21010&wxUserId=null&openType=1
thread-index: Adw5r/tRoRWBEexZSHSEx7hzRLKFHQ==
#24
DANSON前天 11:28
这是我为单位写的一个爬取宣传数据的应用程序,绝大多数网页场景都OK,就是少部分网页无能为力

只有本站会员才能查看附件,请 登录
#25
吹水佬前天 11:53
回复 23楼 DANSON
你的爬代码呢?
#26
吹水佬前天 12:24
看看html文本,改改 but2.click
程序代码:

    PROCEDURE but2.click
        IF this.Caption=="源码json"
            thisform.txt.value = getHtmlJson(thisform, ALLTRIM(thisform.url.value))
        ELSE
            thisform.txt.value = getHtmlText(thisform, ALLTRIM(thisform.url.value))
        ENDIF
        this.Caption = IIF(this.Caption=="源码json","源码html","源码json")
    ENDPROC


再增加一个函数 getHtmlText()
程序代码:

FUNCTION getHtmlText(oForm, cUrl)
    oForm.txt.value = "获取数据,请稍候......"
    LOCAL jsCode
    oForm.myNavigate(cUrl, 30)
    jsCode = "document.documentElement.outerHTML;"
    oForm.myExecuteScript(jsCode, .t., 30)
    RETURN oForm.returnExecuteScript
ENDFUNC
#27
DANSON前天 13:03
回复 26楼 吹水佬
经验证,吹版是国内最牛13的VFP版主,没有之一!!!
只有本站会员才能查看附件,请 登录
#28
吹水佬前天 13:20
那几个网址有些下载好慢,可以增加那个等待时间值,示例设的是30秒。
还有,这网站的连接好像有时间间隔限制,短时间内多次连有时会获取不了正常网页内容。
#29
DANSON前天 13:31
回复 28楼 吹水佬
是的,总之,一句话:吹版威武!!!
#30
DANSON前天 15:54
回复 28楼 吹水佬
万能的吹版,我把您的代码精简了一下,便于无缝融合到我自己的代码里,经验证可行,是否可以发到这里供兄弟们切磋一下?

只有本站会员才能查看附件,请 登录
#31
吹水佬前天 16:50
论坛的贴图时不时看不到?
#32
吹水佬前天 16:54
以下是引用DANSON在2025-12-17 15:54:04的发言:

万能的吹版,我把您的代码精简了一下,便于无缝融合到我自己的代码里,经验证可行,是否可以发到这里供兄弟们切磋一下?


切磋是好事,无理由不可。
#33
DANSON前天 17:00
回复 32楼 吹水佬
谢谢吹版授人以渔的大侠风度,将文件.txt 改成 .prg,即可直接使用。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2025-12-17 17:03编辑过]

#34
吹水佬前天 23:57
1楼更新
封装成vfp类,添加demo:获取cookies、获取js脚本代码,方便理解使用。
#35
schtg昨天 06:09
#36
ykxby001昨天 12:37
越来越好
#37
DANSON昨天 14:33

使用吹版的DLL及DEMO代码,结合我自己的代码,基本上可以应付我在工作场景中接触的绝大多数网址,但像下面的网址,还是无法抓到数据,因为尝试所有的策略获取的源文件(源码),里面都没有网页内容数据,各位兄弟发挥聪明才智,一起找找解决办法:

https://
thread-index: Adw5r6B5uOxiPEuTSiqcFVfs+SQcdA==
#38
easyppt昨天 16:37
以下是引用DANSON在2025-12-18 14:33:26的发言:


使用吹版的DLL及DEMO代码,结合我自己的代码,基本上可以应付我在工作场景中接触的绝大多数网址,但像下面的网址,还是无法抓到数据,因为尝试所有的策略获取的源文件(源码),里面都没有网页内容数据,各位兄弟发挥聪明才智,一起找找解决办法:

https://
thread-index: Adw5r6B5uOxiPEuTSiqcFVfs+SQcdA==


数据加密了,页面加载完毕后,估计是 onload 调用js解密后显示的,所以 必须要渲染,或者自行再调用JS来解密,光获取返回数据不行的

它的数据主体在:<div id=app></div> 这个div中,但初始内容是空的,是js处理显示的。
数据最终来自这个地址:https://
但是需要提交正确的 header 才能获取。
就像百度文库一样,不会让你直接就能获取数据的

[此贴子已经被作者于2025-12-18 18:04编辑过]

#39
吹水佬昨天 16:45
可以写个禁止运行脚本的demo看看静态的html和js代码
#40
吹水佬22 小时前
只有本站会员才能查看附件,请 登录

看了一下静态网页与动态网页,好像网页的很大部分内容都是动态生成的。
因此,网页下载完成事件只是静态网页部分下载完成,还要花时间执行脚本生成动态网页部分。
这样试试,在相关模块相应加载网址后加个延时中断等待一下再去取网页源码。
测试代码:适当调整一下 INKEY(0.5) 的等待时间。
程序代码:

FUNCTION getHtmlText(cUrl, script_enabled)
    ofw.print_msg("获取数据,请稍候......")
    web.Settings(IS_SCRIPT_ENABLED, script_enabled)
    LOCAL jsCode, txt
    web.Navigate(cUrl, WAIT_TIMEOUT)
    DOEVENTS
    INKEY(0.5)
    jsCode = "document.documentElement.outerHTML;"
    web.ExecuteScript(jsCode, .t., WAIT_TIMEOUT)
    RETURN web.returnExecuteScript
ENDFUNC

web.Settings(IS_SCRIPT_ENABLED, script_enabled) 是新增设置是否运行脚本,可忽略。

[此贴子已经被作者于2025-12-19 00:37编辑过]

#41
schtg16 小时前
回复 40楼 吹水佬
#42
easyppt14 小时前
吹版威武!

现在很多页面都是动态AJAX获取数据后显示的
#43
吹水佬13 小时前
单进程单线程对异步事件的非阻塞式同步处理有点麻烦,目前试过有效的要轮番检测执行消息队列。
可以多加一个非阻塞式的同步暂停时间,或者再看看 WebView2 有无更好的同步处理方法。
有空整理一下测试代码再让大家试试

#44
DANSON9 小时前
回复 40楼 吹水佬
事实再次证明,吹版毫无争议的是国内最牛13的VFP版主,没有之一!!!

一直以为自己的VFP技术还可以,现在看来,连给吹版提鞋都还需要排队啊
#45
chychychy8 小时前
是不是在64位win10下不行啊?
#46
DANSON8 小时前
回复 45楼 chychychy
可以的,我就是64位的

#47
DANSON8 小时前
回复 45楼 chychychy
你是哪个环节有问题?
#48
chychychy7 小时前
回复 46楼 DANSON
【谢谢吹版授人以渔的大侠风度,将文件.txt 改成 .prg,即可直接使用。】
我直接将txt改为prg,然后用vfp打开运行试试的的,没有【封装成vfp类,添加demo:获取cookies、获取js脚本代码,方便理解使用。】,因为不大会,想学习一下,见笑了
弹窗提示不能加载“32位的……”

只有本站会员才能查看附件,请 登录

是不是我测试的方式不对导致的

[此贴子已经被作者于2025-12-19 15:05编辑过]

#49
DANSON7 小时前
回复 48楼 chychychy
看一下你的.prg运行目录里有没有这两个文件:myWebViewDll.dll,WebView2Loader.dll

没有的话,在吹版的DEMO压缩包里找到,并复制到运行目录里。
#50
chychychy7 小时前
回复 49楼 DANSON
谢谢,我的点击附件无法下载,点击后出现“502 Bad Gateway”
只有本站会员才能查看附件,请 登录

更换浏览器也是如此,以为是网站的原因,不知是否?
#51
DANSON7 小时前
回复 50楼 chychychy
这个论坛对网速要求比较高,你连接手机热点试试,实在不行的话,就晚上回去下
12