请鱼C大神们帮我看一下这个爬虫的返回值中乱码的问题怎么结局
import urllib.requestimport urllib.parse
url = 'http://fanyi.pdf365.cn/v2/api/getTranslateResult'
context = input('请输入要翻译的内容:\n')
data = {}
data['orginL'] = 'auto'
data['targetL'] = 'zh-CN'
data ['text'] = context
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url,data)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36')
response = urllib.request.urlopen(req)
html = response.read().decode('utf-8')
print(html)
hello,又是你呀{:7_141:}
你看网站检索的时候注意下,这个网站翻译原文英文和中文时,data中的targetL取值是不一样的,所以你代码如果输入英文能正常翻译,但是为中文时回传乱码。 yhhpf 发表于 2020-7-14 11:51
hello,又是你呀
你看网站检索的时候注意下,这个网站翻译原文英文和中文时,data中的targetL ...
感谢大佬,我去试试哈 yhhpf 发表于 2020-7-14 11:51
hello,又是你呀
你看网站检索的时候注意下,这个网站翻译原文英文和中文时,data中的targetL ...
那请问这个问题如何解决呢 马钰乔布轩 发表于 2020-7-14 12:51
那请问这个问题如何解决呢
from tkinter import *
import urllib.request
import urllib.parse
import json
class My_GUI():
def __init__(self,top):
self.top = top
def set_top(self):
#标题设置
self.top.title('爬虫翻译_V2.0')
self.top.geometry('600x400+10+10')
#标签设置
self.data_Label = Label(self.top,text='请输入需要翻译的内容:(点击对应按钮进行翻译)')
self.data_Label.grid(row=0,column=0)
self.text_Label = Label(self.top,text='以下为翻译结果:')
self.text_Label.grid(row=5,column=0,rowspan=3)
#文本框设置
self.data_Text = Text(self.top,width=85, height=10)
self.data_Text.grid(row=1,column=0,rowspan=4,columnspan=10)
self.text_Text = Text(self.top,width=85, height=10)
self.text_Text.grid(row=8,column=0,rowspan=4,columnspan=10)
#按钮设置
self.fy_Button = Button(self.top,text='翻译为中文',activebackground='blue',command = self.run_CN)
self.fy_Button.grid(row=5,column=1)
self.fy_Button = Button(self.top,text='翻译为英文',activebackground='red',command = self.run_EN)
self.fy_Button.grid(row=5,column=2)
#运算代码
def run_CN(self) :
targetL = 'zh-CN'
self.FY(targetL)
def run_EN(self) :
targetL = 'en'
self.FY(targetL)
def FY(self,targetL):
self.text_Text.delete(1.0,'end')
url = 'http://fanyi.pdf365.cn/v2/api/getTranslateResult'
head = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0'}
data = {}
data['orginL'] = "auto"
data['targetL'] = targetL
data['text'] = urllib.parse.quote(self.data_Text.get('1.0','end'))
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url=url, data=data, headers=head)
html = urllib.request.urlopen(req)
html = html.read().decode('utf-8')
target = json.loads(html)
self.text_Text.insert('end',target['result'])
def gui_start():
top = Tk()
Windows = My_GUI(top)
Windows.set_top()
top.mainloop()
gui_start()
你参考下我以前的代码吧,这代码还有好多可以优化的; yhhpf 发表于 2020-7-14 13:00
你参考下我以前的代码吧,这代码还有好多可以优化的;
卧槽!谢谢!!!
页:
[1]