SupManCantFly 2020-08-11 21:39 采纳率: 33.3%
浏览 310

怎么才能不被发现是 脚本 发起的请求?

今天我用java的httpclient访问b站,结果被发现是脚本,然后请求返回的数据都是假的。
我把浏览器访问时的参数都原封不动的带上了,还是被发现了。
下面是java的代码

    getMethod.addRequestHeader("cookie", Header.cookie);
    //以下是为了不让识别出是脚本额外携带的参数,如果不携带也能获取数据

    getMethod.addRequestHeader(":authority","api.bilibili.com");
    getMethod.addRequestHeader("method","GET");
    getMethod.addRequestHeader(":path","/x/relation/followings?vmid=12345");
    getMethod.addRequestHeader(":scheme","https");
    getMethod.addRequestHeader("accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9");
    getMethod.addRequestHeader("accept-encoding","utf-8");
    getMethod.addRequestHeader("accept-language","zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6");
    getMethod.addRequestHeader("cache-control","max-age=0");
    getMethod.addRequestHeader("sec-fetch-dest","document");
    getMethod.addRequestHeader("sec-fetch-mode","navigate");
    getMethod.addRequestHeader("sec-fetch-site","none");
    getMethod.addRequestHeader("sec-fetch-user","?1");
    getMethod.addRequestHeader("upgrade-insecure-requests","1");
    getMethod.addRequestHeader("user-agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.52");

下面是浏览器的请求标头

图片说明

我试了很多遍,还是获得了假的数据,但浏览器请求获得的数据都是真的。
有大佬知道怎么办么?感激不尽!!

  • 写回答

4条回答 默认 最新

  • threenewbee 2020-08-11 22:41
    关注

    现在b站这种级别的,都会有基于机器学习的判别,包括鼠标操作习惯、操作间隔、点击、停留时间、滚动等等,你要做得逼真,你也得用机器学习去训练一个bot。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?