兄弟萌 谁了解过探活接口啊 这东西是干嘛的 有什么功能 Java怎么实现 各大网站都翻烂了没找到资料 急啊
1条回答 默认 最新
关注【相关推荐】
- 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/668495
- 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:【JAVA 第三章 流程控制语句】课后习题 编写判断从键盘输入的字符串是否为回文
- 你还可以看下java参考手册中的 java-学习Java语言 - 描述Java编程语言的基本概念和特点的课程。-类和对象》描述了如何编写创建对象的类,以及如何创建和使用对象。-课堂
- 您还可以看一下 黄菊华老师的Java微信小程序珠宝首饰购物商城 大学生毕业设计教学视频课程中的 java小程序珠宝首饰商城 后台系统发布操作演示小节, 巩固相关知识点
- 除此之外, 这篇博客: java 解决企查查非法操作验证问题 爬取企查查企业相关数据 最新实践可用 java 代码中的 准备好了就开始进入正题 手把手教学 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
我是用的是360的浏览器。其他浏览器的开发者工具不一定是F12 ,请自行使用你们自己的浏览器快捷键 。下面的步骤都建立在登录后的前提下。各位记得登录自己的账号
首先第一步
1 .打开某查查的官网,然后随便输入搜索的内容 然后按F12 先清空所有的请求链接 然后点击
https://www.qichacha.com/xxxxxxxxxxxxxxxxxxxxxxx.html
清空的意义只是在于方便看到下面所需要的链接相关数据,然后点击查一下。

这个就是所需要的搜索的接口。
当然 如果你还需要官网之类的信息的话 就还需要调另外的接口。我这就不截图了。直接将链接发出
这个就是某个公司的详情页面 ,需要其他参数请自行在里面查找知道这两个接口后。那么我们就开始进行爬数据了
我直接上代码。因为一开始写我没用jsoup 所以 就没有替换一开始的解析了。你们可以自行替换

Cookie 请将浏览器你看到的那个请求的Cookie 进行替换
自行复制下来进行替换就好。
自此得到的 stringBuffer 就是整个搜索的html的页面


这样就能拿到了基本相关信息 因为后来才用到jsoup 去获取里面更多的字段值。所以这部分也就没做修改了。
因为我这边还需要用到官网的字段。所以我这边getWebsite 方法 就是获取官网字段的方法。就不讲解了,因为都是一样的直接贴图

这个所返回的就是官网的地址 。具体要看的话 请用postMain 或者直接网页F12查看接口 ,因为接口返回的是整个html 的内容这样子的话 就基本完成了。。我这边测试了下 发现刚开始是好的,但是突然就报错了。原因是我切割字符串没做判断导致的,这是为什么呢,。是因为请求多了。然后某查查那边认为是非法请求操作。然后有了个滑动验证的页面出现,所以我解析的时候就会报错。。
这个时候我F12查看的时候 因为会跳转新页面然后控制器的请求会被全部清空。所以我就用fiddler 进行抓包 查看了 连接请求的数据 。正好被我发现了。验证过程一共会有三个请求连接出现
第一个 https://cf.aliyun.com/nocaptcha/initialize.jsonp?a=QNYX&t=QNYX%3A"+curl+"%3A0.4401802408723421&&scene=register&lang=cn&v=v1.2.17&href=https%3A%2F%2Fwww.qichacha.com%2Findex_verify&callback=initializeJsonp_" +getNumber(0)curl ==== 时间戳 getNumber 就是返回个18位数的字符串。这个我也不知道是为什么。因为我请求多次发现这个会变。所以我就随机了18位数。测试过后其实几位数的都ok 。为了正常 我就跟原来的一致
这个请求完毕后会返回个jsoninitializeJsonp_789786927615608146({“success”:true,“result”:{“msg”:“success”,“success”:true}});
initializeJsonp_789786927615608146 _后面的18位数就是之前自己传的。这个没啥用。可以不用管然后滑动到最右边的时候又会调用一个接口
这个curl 就是上个接口初始化的时间戳
getNumber 又是一个新的18位数 。 当然有问可能会说 为什么要传个0过去。。其实这个没啥用。。这个传的只是为了让返回多少位数的字符串。传0会默认18位数的字符串返回{“success”:true,“result”:{“csessionid”:“01daFf1l9scRU8mRh8M3qJ5_FwsaheIR8Q_QH6pQBeZ1N8ijeHKzmVsBb5h0VNGKUw0guSwCyL-M6JiICtRAJzB0Hzrwy86Xy1xTAvWk_gKd7GvFkZZxe1-O_QT5YJlJFDDQkUdMsptYK_WofEg-msTY3qimr-_g_w-m3mW4nE4pY”,“code”:0,“value”:“05JkRFK6UtwzBZKy3RJfMYNFVZ8MZ3kWefo5Gktd8KxQlNrfF-81bdYmU1cAk0dY6TGjvtpenyARFtQx-bNBp__hk4nGp21K_eENWcsXfJQzBptPb3S5U-qVTGvcE_kUa1f8OK_vIrbixjKx0P2veOw5kYBtxP2svA7zDwMJSgX4-somcC00Xc3bB7XRNv01vAHIBeHhO1pidp4fKNSy0UKwFQxt0IHB424h9I6iv2o3r_CqnIAey3-pOXLwmv704gyes0JUFkmLXxX_bmfQBAeoj0mbvqverSoaLz0Q4YNPa5saSAt98ybKjlhRDRjHufXU34HwOgY2Ys4U1Cq16s1J9k771ducTnB4OC3ZYsaPUU28iFkGIdhIjyXooyj0j7”}}
重点来了 。这个返回的数据就是有用的了。这个接口默认返回的是jsonp的结果。我这边直接切割了下 。所以才会如上展示

csessionid 与value 会在点击确认的时候 有用到。所以要记录下来那么就到了最后一个接口。。
https://www.qichacha.com/index_verifyAction 这个是post 的接口

curl 是第一步初始化的值
如果正确的话会返回这个
{“msg”:"\u9a8c\u8bc1\u6210\u529f",“success”:true}
错误的话
{“msg”:“滑动验证失败”,“success”:false}错误请检查cookie .一般会是cookie的问题
最后再重新调用下页面的接口。就能获取到数据页面拉。

这个就是最后我用poi 最后导出的数据,。 需要的话 请留言 我发地址。或者稍后我直接加个git 链接。
最后的最后。给大家个忠告哈。。调用的时候请给个休眠时间。。不然最后就会这样。。

仅供学习参考。如有侵权 请联系本人删除
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决评论 打赏 举报无用 1