|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在学习小甲鱼的零基础入门python里的爬虫第二节,跟着小甲鱼练习了一下爬取有道翻译,程序如下:
import urllib.request
import urllib.parse
url = 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
data = {}
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['i'] = content
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '16479194564289'
data['sign'] = '1dd5674882aee0c529d9bb615fcb72c9'
data['lts'] = '1647919456428'
data['bv'] = '097b265c57844c587e0fd5b8ecb30a24'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read()
print(html)
但程序报错为:b'{"errorCode":50}'
百度了一下,说是有道加入了反爬机制,但还是求大神解答一下是什么原因
是因为你的接口不对,你的代码应该改成这样:
- import urllib.request
- import urllib.parse
- url = 'http://fanyi.youdao.com/translate'
- data = {}
- data['from'] = 'AUTO'
- data['to'] = 'AUTO'
- data['i'] = content
- data['smartresult'] = 'dict'
- data['client'] = 'fanyideskweb'
- data['salt'] = '16479194564289'
- data['sign'] = '1dd5674882aee0c529d9bb615fcb72c9'
- data['lts'] = '1647919456428'
- data['bv'] = '097b265c57844c587e0fd5b8ecb30a24'
- data['doctype'] = 'json'
- data['version'] = '2.1'
- data['keyfrom'] = 'fanyi.web'
- data['action'] = 'FY_BY_CLICKBUTTION'
- data = urllib.parse.urlencode(data).encode('utf-8')
- response = urllib.request.urlopen(url,data)
- html = response.read()
- print(html)
复制代码
|
|