Python3.7 爬虫(有道词典)(使用User Agent)

Python3.7 爬虫(有道词典)(使用User Agent)

  • 参考
    • 问题1
    • 问题2
    • 问题3
  • 审查数据
  • 代码实现
  • 结果呈现

参考

学习 小甲鱼老师的《零基础入门学习Python》

问题1

您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com

问题2

SyntaxError: EOL while scanning string literal

问题3

英汉自动转换翻译

审查数据

使用mac的chrome浏览器开发者工具,在Network窗口,获取网页信息

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// An highlighted block
import urllib.request
import urllib.parse
import json

content = input("请输入需要翻译的内容:")
url ="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
head ={<!-- -->}
head['Referer']='http://fanyi.youdao.com'
###head['User-Agent']='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36'
head['User-Agent']='Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19'

"""
已失效
data = {<!-- -->}
data['type']='AUTO'
data['i']=content
data['doctype']='json'
data['xmlVersion']='1.6'
data['keyfrom']='fanyi.web'
data['ue']='UTF-8'
data['typoResult']='true'
data =urllib.parse.urlencode(data).encode('utf-8')
"""

data = {<!-- -->}
data['i'] = content
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'

data['salt'] = '16043278834179'  #会变化
data['sign'] = '4f2a1f9a4e4c3b0a67957a27d7eab383'#会变化
data['lts'] = '1604327883417'#会变化lts

data['bv'] = '1267ce7357d7d72f8f188874f323a125'
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().decode('utf-8')
req =urllib.request.Request(url,data,head)
response =urllib.request.urlopen(req)
html =response.read().decode('utf-8')
#print(html)

target=json.loads(html)
print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))

结果呈现

在这里插入图片描述