首先我们打开bing翻译页面 并将浏览器控制台打开
编辑
然后在文本框随便输入 看右侧工作台中网络里面请求的变化 经过多次输入
编辑
可以看到每次输入字符后 都会触发这几个请求 如此我们范围可以缩小到这三个请求上
首先从他们三个返回值上入手
编辑
不难看出第一请求 https://cn.bing.com/ttranslatev3? 的返回值就是我们需要的 需要的数据,
接下来便看请求参数
编辑
接下来麻烦事就是找到这些请求值产生的地方 这些请求值中
通过缓存清理和postman 测试提交 isVertical 和iid 目前是固定的没有任何变化(其实本人懒,懒得去找!)
剩下 IG,fromlang,text,to,token,key几个参数 不难分析 fromlang,text,to 分别对应
当前待翻译的字符串语言 、待翻译的文本和需要翻译的目标语言
所以 最终我们需要找的的就是IG、Token和key
而刚开始我们打开网络的时候就可以看出 页面和css加载完成后
编辑
有一条请求携带了IG 通过这台信息 很大几率IG 可能在页面中
这个时候直接查看页面源码 通过IG值搜索 发现两天 而且两条变量名 都是IG 证明我们的猜测成立
编辑
接下来 需要找到的值 也只剩下token 和key了
通过搜索token值 发现指向到translator页面
编辑
此时到源代码页面搜索token值 发现token 存在
编辑
那么接下来剩下key值,但细心的人会发现 token 值前面的值很像key值
经过对比证实了我们猜想 没有想到在寻找token的时候就顺带找到key值,所以我们得在找结果需要细心处理和观察,如此我们需要的值全部拿到,同时丢到apifox
编辑
请求能通过 多次测试刷新页面 拿到 token、key和ig 值 请求皆能通过
如此接口也成功拿下
下面开始写C#请求代码
首先拉页面获取token,ig,key这里使用HttpClient类库
编辑
然后通过字符串正则处理 拿到这三个值(本人正则写的孬,不好意思展示)
后面仿照请求 去真正翻译接口 注意请求类型是 application/x-www-form-urlencoded
编辑
另外 user-agent 记得带上 ua ua获取浏览器随便打开一请求找到请求表头 里面user-agent
复制值拿来用就行了
至此我们bing翻译爬虫程序已经完成
(第一次写文章,技术有限 写的不好 请大家见谅!)
标签:请求,C#,bing,爬取,编辑,token,key,IG,页面 From: https://www.cnblogs.com/boolshow/p/16866741.html