无头浏览器在Quicker中的应用(示例)–天眼查V2

概述

之前写过一个轻量的天眼查的Quicker动作,可以很快查询到天眼查的一些公司的公开数据,但访问频率过高的话,会被风控,必须要登录才能继续操作,不过之前的方式很难实现登录并刷新验证信息。

天眼查这种网站的反爬做得其实非常好,想要破解验证信息实在有些困难,所以,我采用了另外一种技术栈,既然你不让我通过接口爬,那我就”正正当当“去访问你网页,但是,没有界面的哪种,而且,支持登录和保留登录信息。所有的验证处理,都交给浏览器本身去处理了,不需要我再额外处理。

最终达到的效果,其实和之前版本的企业查询差不多,都是选中文本,然后进行查询,显示结果。

动作网址:企业查询(天眼查)V2 – by SoloShine/Field – 动作信息 – Quicker (getquicker.net)

希望这个示例能帮助到相关开发者。

效果演示

天眼查V2(无头浏览器模式)
天眼查V2(无头浏览器模式)

技术栈

Quicker + Selenium + C#/.NET + Javascript + WebDriver(Edge/Chrome)

设计思路

基础库

要实现后台无头浏览器控制,目前主流的是采用Selenium+WebDriver,Quicker本身两者都不支持,想要让其支持,在不动源码的情况下,只有用户自己添加依赖了。

所以,我设计了一个从nuget中获取.net指定版本包dll的子程序,原理很简单,nuget打包本质上也算zip压缩包,解压后提取需要的dll文件并添加到动作调用域即可。具体可查看 装载Nuget包内容(子程序) – 子程序信息 – Quicker (getquicker.net)

浏览器控制驱动

拿到需要并装载了对应的dll后,即可在程序中进行调用了,nuget主要是.net包,使用c#脚本是最方便和合适的,在visual studio调试好后,拿到Quicker中运行,发现会报错,无法调用”selenium.webdriver“的”selenium-manager.exe“文件(在vs中,会自动调用这个文件,实现对其他浏览器的控制,可以不用WebDriver)。

想要控制的话,还得指定浏览器的webdriver驱动才行,需要用户自己去安装webdriver。下载浏览器的WebDriver驱动,将可执行文件放在浏览器安装目录,目前只测试了两个浏览器的调用,最新连接放在下面,可以根据自己浏览器版本进行下载,
WebDriver for Edge浏览器:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/,
WebDriver for Chrome:https://getwebdriver.com/;

从程序设计的角度来说,可以实现自动下载,免去手动下载和复制到浏览器安装位置的操作,但会出现一些问题,最明显的就是版本匹配,有些人使用浏览器是本着”能用就不更新“的逻辑,不去更新,而有的人是更新得特别快,甚至用的内侧版、开发版、金丝雀版本,这样是很不好匹配的。

业务逻辑

从天眼查提取信息的逻辑很简单,参考之前的版本:企业查询(天眼查) – by SoloShine/Field – 动作信息 – Quicker (getquicker.net) ,和之前不同之处只有验证和查询。

这里主要说,关于无头浏览器的逻辑:

  1. 访问查询网页
  2. 若需要登录验证,则退出无头模式,显示界面,提示登录,登录后重新打开无头模式继续查询;
  3. 提取查询到到第一个条目(最佳结果);
  4. 访问该条目,进入网页详情;
  5. 提取数据节点、返回数据并关闭浏览器调试;

浏览器需要做的内容很简单,拿到数据后的处理回到Quicker即可,json的提取和展示这里就不专门解释了。

但该说不说,天眼查把说有的数据放到一个节点,属实是艺高人胆大了。

注意事项

  • 第一次运行动作时候,动作会下载两个Selenium的包,装载到Quicker运行目录,用于调用WebDriver。由于Quicker软件安装在系统目录时候,其运行目录需要管理员权限才能访问,所以会弹出来管理员权限确认窗口,点确定即可;
  • 在运行动作时候,务必确保对应浏览器没在运行,且后台已被清理,不然WebDriver会无法调用,这也算是无头浏览器的一个缺陷,不能和界面同时运行;
  • 关于传递参数,如果你不清楚你填入内容的意思,以及可能造成的影响,能不使用就不使用,即使要使用,使用后也记得清理,因为其会在下一次调用中也生效,如果你忘了清理(比如包含地区参数),你下一次查询(一个不在设定区域的内容)便可能会没有记录;

作者联系方式

邮箱:soloshine.cfh@foxmail.com
QQ:1393409895
接全栈定制,解决方案+实施

文章链接:http://www.soloshine.top/index.php/archives/27
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇