Python爬虫 ————POST请求有道翻译{"errorcode":50}

话不多说直接上链接(http://blog.csdn.net/nunchakushuang/article/details/75294947)因为有道翻译有反爬虫机制,所以简单的爬肯定不行,但是这一篇博客只是告诉我们有道的JS反爬虫代码,完全运行后还需要改你得到的POST请求的URL
我的URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
需要修改成http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule
就是把_o去掉,而且这样的请求只能是用于英文翻译汉文,如果有大牛知道另外的完全的方法
请别忘了告诉我一声哈…………^_^
附上我的代码

#!/usr/bin/python
#  coding: utf-8
import urllib2
import urllib
import json
import time
import random
import hashlib

url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
headers = {
"Accept":" application/json, text/javascript, */*; q=0.01",
"X-Requested-With":" XMLHttpRequest",
"User-Agent":" Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
"Content-Type":" application/x-www-form-urlencoded; charset=UTF-8",
"Accept-Language":" zh-CN,zh;q=0.9"

}

key = raw_input("translation for:  ")

u = 'fanyideskweb'
d = key
f = str(int(time.time()*1000) + random.randint(1,10))
c = 'ebSeFb%=XZ%T[KZ)c(sy!'

md5 = hashlib.md5()
md5.update(u)
md5.update(d)
md5.update(f)
md5.update(c)
sign = md5.hexdigest()
data = {
"i":key,
"from":"AUTO",
"to":"AUTO",
"smartresult":"dict",
"client":"fanyideskweb",
"salt":f,
"sign":sign,
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_REALTIME",
"typoResult":"false"
}
data = urllib.urlencode(data)
request = urllib2.Request(url,data=data,headers=headers)
respose = urllib2.urlopen(request)
line = json.load(respose)
print line['translateResult'][0][0]['tgt']
  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值