python爬虫爬有道翻译
这个代码现在是会了,但是代码是不能背的,需要理解,里面有一些东西我不理解,去百度了但是效果不好,想问一下鱼油们是怎么理解的,代码如下import urllib.request
import urllib.parse
import json
temp = input("请输入要翻译的文本")
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] =temp
data['client'] = 'fanyideskweb'
data['salt'] = '15933351272349'
data['sign'] = 'a356b81cb4cdfcc7d308e573bc271fcc'
data['ts'] = '1593335127234'
data['bv'] = '043c9b8297522e9a37a779af14b3350c'
data['doctype'] = 'json'
data['version'] ='2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] ='FY_BY_REALTlME'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
result = json.loads(html)
print(result['translateResult']['tgt'])
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
这两句话是干嘛的呢?查了好多资料都看不懂{:10_257:}
urllib.parse.urlencode(data)这个是将字符串 URL 编码,而后面加 encode('utf-8') 是把URL编码转为 utf-8编码
urllib.request.urlopen(url,data)这个就是请求网站嘛,但是我记得 data 不能填这,要通过 urllib.request.Request() 填在这里面 然后传给 urlopen 的 如果想看一下data前后的变化的话把代码加个东西
data['action'] ='FY_BY_REALTlME'
print("原来的data是",data)
data = urllib.parse.urlencode(data).encode('utf-8')
print("现在的data是",data)
然后输出为
原来的data是 {'i': '我爱你', 'client': 'fanyideskweb', 'salt': '15933351272349', 'sign': 'a356b81cb4cdfcc7d308e573bc271fcc', 'ts': '1593335127234', 'bv': '043c9b8297522e9a37a779af14b3350c', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTlME'}
现在的data是 b'i=%E6%88%91%E7%88%B1%E4%BD%A0&client=fanyideskweb&salt=15933351272349&sign=a356b81cb4cdfcc7d308e573bc271fcc&ts=1593335127234&bv=043c9b8297522e9a37a779af14b3350c&doctype=json&version=2.1&keyfrom=fanyi.web&action=FY_BY_REALTlME'
小甲鱼的铁粉 发表于 2020-6-28 17:50
如果想看一下data前后的变化的话把代码加个东西
然后输出为
%E6%88%91%E7%88%B1%E4%BD%A0这个就是 我爱你 的 URL编码 Twilight6 发表于 2020-6-28 17:50
urllib.parse.urlencode(data)这个是将字符串 URL 编码,而后面加 encode('utf-8') 是把URL编码转为 utf- ...
对对对,源代码有urllib.request.Request(),我没有打
页:
[1]