boolshow

导航

【C#爬虫】使用C# 进行bing翻译爬取

 首先我们打开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翻译爬虫程序已经完成

(第一次写文章,技术有限 写的不好 请大家见谅!)

posted on 2022-11-07 17:22  饭饭千凡  阅读(489)  评论(1编辑  收藏  举报