飞花落尽 发表于 2021-8-19 13:05:25

为什么这个爬虫打印的html中没有翻译结果?(第54讲)

跟着小甲鱼敲的:
import urllib.request
import urllib.parse

url = 'https://fanyi.sogou.com/api/transpc/text/result'
data = {}
data['client'] = "pc"
data['exchange'] = 'false'
data['fr'] = "browser_pc"
data['from']="en"
data['needQc'] = '1'
data['s'] = "09a257a14c00e5191eab21deeb4c786e"
data['text'] = "I love you"
data['to'] = "zh-CHS"
data['uuid'] = "05b21b08-b33e-41e1-8761-ee9cea4eb88e"
data = urllib.parse.urlencode(data).encode('utf-8')

response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')

print(html)

运行结果:
{"data":{"detect":{"detect":"en","language":"英语"},"translate":{"errorCode":"s10","dit":""}},"info":"success","node":"1","status":0,"zly":"zly"}

3236654291 发表于 2021-8-19 13:44:36

小甲鱼的视频很久之前的了,现在不一定有用

3236654291 发表于 2021-8-19 13:46:28

我当时也遇到了这个问题,后来自己改写了一下

3236654291 发表于 2021-8-19 13:47:19

import urllib.request
import urllib.parse
import json

while True:
    content = input("请输入你要翻译的内容:")
    if content == "exit" or content == "退出":
      break

    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/"

    head = {}
    head['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36'

    data = {}
    data['i'] = content
    data['from'] = 'AUTO'
    data['to'] = 'AUTO'
    data['smartresult']= 'dict'
    data['client'] = 'fanyideskweb'
    data['salt'] = '16248971446526'
    data['sign'] = 'c2419f171ee58cb900aec5df720a8322'
    data['lts'] = '1624897144652'
    data['bv'] = '6c7a52ace17deb79388e05719a7255b8'
    data['doctype'] = 'json'
    data['Version'] = '2.1'
    data['keyfrom'] = 'fanyi.web'
    data['action'] = 'FY_BY_CLICKBUTTION'
    data["ue"] = 'UTF-8'
    data['typoResult'] = 'true'
    data = urllib.parse.urlencode(data).encode('utf-8')

    req = urllib.request.Request(url,data,head)
    response = urllib.request.urlopen(url,data)
    html = response.read().decode("utf-8")

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

只能给你参考一下,这个是有道翻译的

飞花落尽 发表于 2021-8-19 15:27:06

3236654291 发表于 2021-8-19 13:47
只能给你参考一下,这个是有道翻译的

试了一下,好像可以,但是为什么要把url的_o去掉呢?加上好像就不行了,这是什么原理?

3236654291 发表于 2021-8-19 15:30:33

哪一行?
很久之前写的

飞花落尽 发表于 2021-8-19 15:34:29

3236654291 发表于 2021-8-19 13:47
只能给你参考一下,这个是有道翻译的

还有那个head随便标识(只要是电脑)都可以吗?

3236654291 发表于 2021-8-19 15:52:14

恩,是谷歌浏览器的

飞花落尽 发表于 2021-8-19 15:57:27

3236654291 发表于 2021-8-19 15:30
哪一行?
很久之前写的

第十行

飞花落尽 发表于 2021-8-19 15:58:33

3236654291 发表于 2021-8-19 15:52
恩,是谷歌浏览器的

在谷歌浏览器的哪里看?

飞花落尽 发表于 2021-8-19 15:59:18

3236654291 发表于 2021-8-19 15:52
恩,是谷歌浏览器的

好像我改了版本号他报错

3236654291 发表于 2021-8-19 16:16:08

飞花落尽 发表于 2021-8-19 15:58
在谷歌浏览器的哪里看?

这个小甲鱼说了呀

飞花落尽 发表于 2021-8-19 16:28:43

3236654291 发表于 2021-8-19 16:16
这个小甲鱼说了呀

哦,下一讲,我还没看hhh,谢谢

飞花落尽 发表于 2021-8-19 16:29:17

3236654291 发表于 2021-8-19 16:16
这个小甲鱼说了呀

所以为什么要把url的_o去掉呢?加上好像就不行了,这是什么原理?

飞花落尽 发表于 2021-8-19 16:37:24

3236654291 发表于 2021-8-19 16:16
这个小甲鱼说了呀

啊这,好像Typeerror了,不修改useragent反而不会

3236654291 发表于 2021-8-19 18:03:14

飞花落尽 发表于 2021-8-19 16:29
所以为什么要把url的_o去掉呢?加上好像就不行了,这是什么原理?

主要是因为时间相隔太久了,我已经记不清为什么要这么做了{:10_266:}

3236654291 发表于 2021-8-19 18:04:06

也没看到有_o
页: [1]
查看完整版本: 为什么这个爬虫打印的html中没有翻译结果?(第54讲)