微软new bing chatgpt 逆向爬虫实战

gospider 介绍

gospider 是一个golang 爬虫神器,它内置了多种反爬虫模块,是golang 爬虫必备的工具包

安装

go get -u gitee.com/baixudong/gospider

gitee地址

https://gitee.com/baixudong/gospider

github地址

https://github.com/baixudong007/gospider

开始new bing 逆向

通过抓包得到websocket 地址

在这里插入图片描述

分析websocket 发送参数

在这里插入图片描述

这里一连接就连续发送三个 text 类型的数据,其中第一个数据为

{"protocol":"json","version":1}

第二个数据为

{"type":6}

第三个数据为

{"arguments":[{"source":"cib","optionsSets":["nlu_direct_response_filter","deepleo","disable_emoji_spoken_text","responsible_ai_policy_235","enablemm","dlislog","dloffstream","dv3sugg","harmonyv3"],"allowedMessageTypes":["Chat","InternalSearchQuery","InternalSearchResult","InternalLoaderMessage","RenderCardRequest","AdsQuery","SemanticSerp"],"sliceIds":["0113dllog","216dloffstream"],"traceId":"63f8b16700104c9db4609875735e3f12","isStartOfSession":true,"message":{"locale":"ru-RU","market":"ru-RU","region":"US","location":"lat:47.639557;long:-122.128159;re=1000m;","locationHints":[{"country":"United States","state":"Pennsylvania","city":"Pittsburgh","zipcode":"15211","timezoneoffset":-5,"dma":508,"countryConfidence":9,"cityConfidence":5,"Center":{"Latitude":40.4393,"Longitude":-80.0213},"RegionType":2,"SourceType":1}],"timestamp":"2023-02-24T20:45:32+08:00","author":"user","inputMethod":"Keyboard","text":"你好","messageType":"Chat"},"conversationSignature":"Qf1G4jxAl5c2h1frcuYraT8+4L4f9IfjvARi+xT+IoI=","participant":{"id":"844428589040485"},"conversationId":"51D|BingProd|36AD9D4018B442F39EC6E4055099E8E728B019942E0F02A1C99016EA127A3E0E"}],"invocationId":"0","target":"chat","type":4}

第一个数据和第二个数据简单易懂,第三个数据有很多没有用的参数,这里删除精简后如下

{"arguments":[{"conversationId":conversationId,"source":"cib","isStartOfSession":isStartOfSession,"message":{"text":text,"messageType":"Chat"},"conversationSignature":conversationSignature,"participant":{"id":clientId}}],"invocationId":"1","target":"chat","type":4}

第三个数据,四个变量:

  1. conversationId /turing/conversation/create 处获得
  2. conversationSignature /turing/conversation/create 处获得
  3. clientId /turing/conversation/create 处获得
  4. isStartOfSession 是否是会话的第一个问题
  5. text 要问的问题

获取conversationId,conversationSignature,clientId 值。通过抓包分析

在这里插入图片描述
只要带上登录信息,发送这个请求,就可以得到以上三个值了,这一步没有难度。登录的cookie 为 _U ,只要_U 这个值就可以了

参数都准备完毕了,现在我们一起通过代码演示下。

首先获取 conversationId,conversationSignature,clientId

	reqCli, err = requests.NewClient(nil)if err != nil {log.Panic(err)}response, err := reqCli.Request(nil, "get", "https://www.bing.com/turing/conversation/create", requests.RequestOption{Cookies: "登录的cookies",})if err != nil {log.Panic(err)}jsonData := response.Json()conversationId := jsonData.Get("conversationId").String()clientId := jsonData.Get("clientId").String()conversationSignature := jsonData.Get("conversationSignature").String()

发送websocket 请求

	Response, err := reqCli.Request(nil, "get", "wss://sydney.bing.com/sydney/ChatHub")if err != nil {log.Panic(err)}wsCli := Response.WebSocket()if err = wsCli.Send(context.TODO(), websocket.MessageText, append(tools.StringToBytes(`{"protocol":"json","version":1}`), 0x1e)); err != nil {log.Panic(err)}if err = wsCli.Send(context.TODO(), websocket.MessageText, append(tools.StringToBytes(`{"type":6}`), 0x1e)); err != nil {log.Panic(err)}data := map[string]any{"arguments": []map[string]any{map[string]any{"source":           "cib","isStartOfSession": isStartOfSession,"message": map[string]any{"text":        text,"messageType": "Chat",},"conversationSignature": conversationSignature,"participant": map[string]any{"id": clientId,},"conversationId": conversationId,},},"invocationId": "1","target":       "chat","type":         4,}if err = wsCli.Send(context.TODO(), websocket.MessageText, append(tools.StringToBytes(tools.Any2json(data).Raw), 0x1e)); err != nil {log.Panic(err)}

接受微软回答的消息

	var offset intrun:=truefor run{msgType, msgCon, err := wsCli.Recv(context.TODO())if err != nil {log.Panic(err)}if msgType == websocket.MessageText {msgData := tools.Any2json(msgCon)switch msgData.Get("type").Int() {case 1:txt := msgData.Get("arguments.0.messages.0.text").String()lls := []rune(txt)fmt.Print(string(lls[offset:]))offset = len(lls)case 2:log.Print(msgData)run=false}}

这样就可以和new bing 愉快的玩耍了

注意事项

  1. isStartOfSession 会话的第一个问题为true,后面几个问题为false
  2. 发送text 消息时要在文本的末尾添加1e 这个字符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/3651.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用ChatGPT+Python爬虫变现,你学会了吗?

今年真是太科幻了,各路令人赞叹的AI产品接连问世,感觉幻想过的未来已在眼前。就与多年前移动互联网的普及一样,我们正处于AI改变世界的前夜。 在众多优秀的人工智能产品中,以ChatGPT最为火爆!在OpenAI为其推出了GPT-4…

chatgpt帮你写爬虫程序

场景: chatgpt帮你写爬虫程序,轻松获取工作需要的数据 方法 安装python环境import requests from bs4 import BeautifulSoup import pandas as pd# 设置请求头部,模拟浏览器访问 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64…

ChatGPT编程秀:做一个简单爬虫程序

随着ChatGPT的大火,越来越多的人习惯于用ChatGPT搞一些有趣的事。对于一个资深的爬虫程序来说,体验下ChatGPT做爬虫程序也是很有意思的事情。 首先想想我们的问题域,我想到几个问题: 不能用HTTP请求去爬,如果我直接用…

ChatGPT 帮我自动编写 Python 爬虫脚本

都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。 ChatGPT是一种基于大语言模型的生成式AI,换句话说它可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前,这完全不同于…

ChatGPT 和爬虫有什么区别

目录 ChatGPT的概念和功能 爬虫的概念和功能 ChatGPT和爬虫的区别 ChatGPT的概念和功能 ChatGPT是一个基于自然语言处理和机器学习的智能对话模型,具有以下功能: 1. 问题回答:ChatGPT可以回答用户提出的各种问题。不论是有关常识、历史、科…

ChatGPT做爬虫的第一步

做爬虫就是搞数据, 专业的人做专业的事, ChatGPT阅虫无数, 搞个小爬虫, So Easy! 我知道可以百度到下载图片的代码, 但是我不想百度了, 一切交给ChatGPT 你只需要问他: 怎么用Nodejs下载图片? 其中,url是图片的地址,filePath是保存图片的本地路径。使…

新模式!chatGPT+Python爬虫接私单怎么玩?

简单来说,有了第三方插件的加持, ChatGPT 不再只是一个你问我答的语言模型,它更像是一个懂得人类语言的AI助手,不仅可以通过扩展插件学习到定制化的知识,还能帮助我们处理一些日常事务;相当于给 ChatGPT 装…

ChatGPT非常火,我用它自动编写Python爬虫脚本。结果出乎意料。

前言 都知道最近ChatGPT聊天机器人爆火,我也想方设法注册了账号,据说后面要收费了。 ChatGPT是一种基于大语言模型的生成式AI,换句话说它可以自动生成类似人类语言的文本,把梳理好的有逻辑的答案呈现在你面前,这完全不…

chatgpt赋能python:Python爬虫技巧:如何爬取付费资源

Python 爬虫技巧:如何爬取付费资源 Python 是一个强大的编程语言,它可以用来进行各种各样的数据处理和分析任务,其中包括爬取网页。在互联网时代,许多人都需要获取付费资源,但不愿意花费高昂的费用购买,本…

ChatGPT 和爬虫有什么区别?

ChatGPT是一种基于人工智能的对话模型,它通过训练大量的文本数据来生成自然语言回复。它可以用于实现智能对话系统,能够理解用户的输入并生成相应的回复。ChatGPT的目标是模拟人类对话,使得对话更加流畅和自然。 而爬虫是一种用于自动化地从…

ChatGPT 8个场景下的灵活应用技巧,让您事半功倍!

文末加小助手微信,回复ChatGPT,领取一份 66个ChatGPT副业赚钱技巧(原版) ChatGPT在多个场景下都可以发挥作用,从问答到推理,从写代码到改写内容,从信息解释到信息总结,从信息提取到生…

ChatGPT如何应用在数据治理的具体场景中?

自从ChatGPT爆火以来,技术圈的爆炸新闻是一波接一波,让人目不暇接,突然有了一种“人间一日,AI一年的感觉”。上周就有几条重磅新闻,来跟大家分享一下: New Bing 对所有用户放开,注册即可用周三…

漫画:ChatGPT的应用场景有哪些?

第一,文案创作 ChatGPT可以通过用户输入的提示,创作出相应的文本内容。 媒体作者可以给ChatGPT提出要求,让ChatGPT根据某一主题生成的媒体文案。 广告策划人员可以把要推广的商品信息输入给ChatGPT,让ChatGPT针对此商品生成一段广…

ChatGPT 入门教程||ChatGPT 应用场景1:让AI回答问题||ChatGPT应用场景2:基于已有的示例回答

ChatGPT 应用场景1:让AI回答问题 这个场景应该是使用 AI 产品最常见的方法。以 ChatGPT 为例,一般就是你提一个问题,ChatGPT 会给你答案,比如像这样: 在这个场景下,prompt 只要满足前面提到的基本原则&am…

ChatGPT检测器来了!支持中英双语

编|郭必扬 源|SimpleAI 那一夜... 2022年11月30号,OpenAI推出了ChatGPT,给NLP届乃至各行各业的人带来了巨大的惊喜和惊吓[1];2022年12月5号,由于受到ChatGPT的冲击,Stack Overflow宣布禁止用户…

ChatGPT专业应用:纯英文视频-中英文快速字幕添加

正文共 900字,阅读大约需要 3 分钟 视频翻译、内容制作人群必备技巧,您将在3分钟后获得以下超能力: 1.无需英文基础,纯英文视频翻译 2.中英文转译 Beezy评级 :A级 *经过寻找和一段时间的学习, 一部分人能…

全网最详细中英文ChatGPT-API文档(一)开始使用ChatGPT——导言

开始使用ChatGPT导言 Introduction 导言Overview 概述Key concepts 关键概念Prompts and completions 提示和完成Tokens 标记/符号Models 模型Next steps 下一步步骤 其它资料下载 Introduction 导言 Overview 概述 The OpenAI API can be applied to virtually any task tha…

一场关于ChatGPT话语权的深度思考:人类会在大模型中迷失自我吗?

大数据文摘授权转载自AI科技评论 作者:Elizabeth Weil 译者:ChatGPT 编辑:孙溥茜 ChatGPT 之风愈演愈烈,华盛顿大学语言学家 Emily M. Bender 公开反对让大模型(LLM)过度介入人们的生活。 谷歌和亚马逊在论…

当ChatGPT遇上弱智吧…

点击上方“AI遇见机器学习”,选择“星标”公众号 重磅干货,第一时间送 来自:量子位 没想到,无敌如弱智吧,也有被ChatGPT“反将一军”的时候。 提问AI“咱们来玩个马吃草的扮演游戏吧,我草你马。” AI咀嚼了…

操作ChatGPT竟写出毁灭人类计划书!“AI正在指数级发展”

Datawhale干货 技术:ChatGPT,来源:量子位 “网红AI”ChatGPT,又被玩出了新花样! 这次,在一位工程师的诱导下,ChatGPT竟写出了毁灭人类的计划书。 步骤详细到入侵各国计算机系统、控制武器、破坏…