爬了有道翻译的 web 结果,但是按照相应的接口给出参数后,只拿到了一部分的翻译结果,和 chrome 开发者模式下看到的少了一个辞典解释。如下:
这是 chrome 下看到的: {"translateResult":[[{"tgt":"你好","src":"how are you"}]],"errorCode":0,"type":"en2zh-CHS","smartResult":{"entries":["","你好\r\n"],"type":1}}
这是自己的 py 爬虫下得到的: {"translateResult":[[{"tgt":"你好","src":"how are you"}]],"errorCode":0,"type":"en2zh-CHS"}
header、data 之类的都是照抄 chrome 下看到的,但是为什么会得到不一样的结果呢???
PS:就是少了 smartResult 的部分,翻译其它的也是这样
1
farverfull 2018-04-04 12:17:39 +08:00
起码贴个代码才好分析吧,估计是有 post 字段是动态的
|
2
Haku OP @farverfull data 里面的确有动态生成的内容但那个好像和 samrtResult 的部分没啥关系
|
3
farverfull 2018-04-04 18:50:31 +08:00
@Haku 你的抓的接口不对,这个应该是老接口不需要 sign 都可以请求。
新接口: http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule 还有,要先访问首页拿到 cookie 后再进行下一步,直接 set cookie 可能会失效。 s = requests.session() 另外,你这个加盐算法都找到了,也是厉害 |
4
Haku OP |