data['salt'] = '1493538230701' 这个应该是个时间戳,
data['sign'] = '7b50be5ddda95bce3d4b7b9404647cec' 应该是根据时间戳+你要翻译的内容加密后生成的验证字段。
除非你知道网站的加密方法,不然基本上是破解不了的,所以你直接这样爬是爬不到的,只会返回给你一个错误代码。
解决办法有2个:
1. 同样是有道翻译,url和data用下面这个
- url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc'
- data = {
- "type" : "AUTO",
- "i" : sentence,
- "doctype" : "json",
- "xmlVersion" : "1.8",
- "keyfrom" : "fanyi.web",
- "ue" : "UTF-8",
- "action" : "FY_BY_CLICKBUTTON",
- "typoResult" : "true"
- }
复制代码
这个是不需要验证字段的,所以可以直接爬。
2.如果你一定要爬你这个页面的话,那就用selenium+phantomjs模拟浏览器,也是可以爬到的,但是速度会比较慢一些。