非凡 发表于 2021-9-14 21:14:14

第54可爬虫修养课上的代码练习

我按照视频课上的方法,找到了有道的 Form Data,但好像和课堂上有些不一样。
运行下来也得不到翻译的结果,但程序也没报错,这是为什么???
import urllib.request
import urllib.parse

url = 'https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
data = {}
data['i'] = 'For lovely eyes, seek out the good in people.'
data['from']= 'AUTO'
data['to']= 'AUTO'
data['smartresult']= 'dict'
data['client']= 'fanyideskweb'
data['salt']= '16315470681987'
data['sign']= 'd6b63a7371c65430a325ca72e9cef1dd'
data['lts']= '1631547068198'
data['bv']= '5912a9bc00e8093f5992b73a3708e1b5'
data['doctype']= 'json'
data['version']= '2.1'
data['keyfrom']= 'fanyi.web'
data['action']= 'FY_BY_CLICKBUTTION'

data = urllib.parse.urlencode(data).encode('utf-8')   #encode('utf-8') 编码转换成utf-8形式

response = urllib.request.urlopen(url,data)

html = response.read().decode('utf-8')          #以utf-8去解码,

print(html)

不能懒 发表于 2021-9-14 21:48:22

因为有道翻译反爬虫机制,把translate_o?的_o去掉就可以了

白two 发表于 2021-9-14 22:06:50

教程是好多年前的了,现在有道加了反爬机制,传的参数都是要加密的。
去 油。管 上面搜 js爬虫案例,上面有比较新的案例。
如果刚开始学爬虫可以按二楼那样去体验一下,但是毕竟接口不是这个,直接改接口会出现各种各样的问题,想得到较好的翻译体验还是得加密参数的。
加密可以 python 模拟加密,也可以直接把加密这段 js 代码挖下来,怎么方便怎么来咯,看你喜欢哪种了。

非凡 发表于 2021-9-14 22:26:37

白two 发表于 2021-9-14 22:06
教程是好多年前的了,现在有道加了反爬机制,传的参数都是要加密的。
去 油。管 上面搜 js爬虫案例,上面 ...

感谢回复,受教了
页: [1]
查看完整版本: 第54可爬虫修养课上的代码练习