惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
罗磊的独立博客
雷峰网
雷峰网
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
爱范儿
爱范儿
B
Blog RSS Feed
腾讯CDC
Apple Machine Learning Research
Apple Machine Learning Research
D
Docker
Recent Announcements
Recent Announcements
T
Tailwind CSS Blog
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
小众软件
小众软件
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
I
InfoQ
S
SegmentFault 最新的问题

博客园 - 极无宪

小红书如何采集市集 Textrimming 失效怎么办? 现在找个vs2019 安装好难呀! WPF:如何将调试信息写入到输出窗口? System.Net.WebException: 远程服务器返回错误: (405) 不允许的方法。 警惕:开启了 SQL Profiler监测SQL语句忘记关了,C盘居然被占满了 nuget 总是获取失败怎么办? 关于打印机共享的注意事项——又被叫去修电脑了 MVVM转换器Int2StringConverter基础类 ServicesController 的使用 winform中坐标系转换的问题,获取某点在屏幕中的绝对位置等 使用本地IIS Web 服务起转到win7 iis7后的系列问题 客户端元素中找不到与此名称匹配的终结点 关于错误的友好提示 调侃 亚马逊的 kindlegen propertygrid 下拉列表 VC编写在windows7下以管理员权限运行的程序(转) vs 已经在解决方案中打开了具有该名称的项目 解决方案"System.InvalidOperationException: 配置有 NoSecurityChanges 标志的 AppDomainManager 修改了 AppDomain 的安全状态"
还在用WebBrowser吗?你out了!
极无宪 · 2020-07-29 · via 博客园 - 极无宪

2020-07-29 07:42  极无宪  阅读(274)  评论()    收藏  举报

背景:

最近想抓取自己在某后台的数据发布情况,只在登录那一步就把我搞蒙了,一堆请求,不知道做了什么操作。登录的数据也做了加密,甚至我都没有找到对应的js在哪个地方对登录信息进行了加密。跟踪网络请求情况跟踪到了相应的数据。但是无从下手,放弃了采集的想法,改用最古老的方式。手动登录后,跳转到要获取数据的页面,把当前页面相关数据采集下来。

尝试的方法:

1、使用iframe嵌入想要采集的页面

在一个主的页面嵌入iframe,通过主页面获取iframe里面的内容。这是我最初的想法,想想挺美,我还可以在自己的后台嵌入这个页面,操作人员直接登录后台就可以就行相应的操作。

经过测试之后此方法行不通,因为存在跨域问题,主页面与子页面无法通讯,虽然可能通过相关的技术可以实现跨域的问题,但仅限于主页面与子页面都是受你控制的情况下。我调用的别人家后台,别人家的后台页面我无法操作,放弃了这种操作。

2、登录后台页面,使用WebBrowser获取相应的数据

该页面使用的技术太潮了,WebBrowser不支持,登录页还能展示,登录就去之后大大的空白页,可能是js执行出错,导致页面显示不出来,又放弃了。

3、只能使用CEF了

完美的解决WebBrowser遇到的问题。

数据能够正常展示之后,手动跳转到要获取数据的页面,调用页面内容,通过正则表达式的方法获取相应的数据。

 var result= wb.GetSourceAsync().Result;//调用页面内容

还有可以优化的地方——侦听network访问情况,直接抓取json数据。

如果能够做到这样就不需要对页面进行正则表达式匹配了,效率更高。网上找到一些方法,我用的最新版本的CEF现在结构发生了变化,已经不再适用,等我有空再研究研究。