def花 发表于 2020-8-22 17:49:20

为什么少了个 _o才能正常运行?

import urllib.request
import urllib.parse

content = input('请输入要翻译的内容:')

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'#这是网页上的
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'#这是正确的
date = {}
date['i']=content
date['from']='AUTO'
date['to']='AUTO'
date['smartresult']='dict'
date['client']='fanyideskweb'
date['salt']='15979913254708'
date['sign']='fe5f00b4f6da188ae071a5f15f239354'
date['lts']='1597991325470'
date['bv']='cc652a2ad669c22da983a705e3bca726'
date['doctype']='json'
date['version']='2.1'
date['keyfrom']='fanyi.web'
date['action']='FY_BY_CLICKBUTTION'
date = urllib.parse.urlencode(date).encode('utf-8')

response = urllib.request.urlopen(url,date)
html = response.read()

print(html)


Twilight6 发表于 2020-8-22 17:50:15

本帖最后由 Twilight6 于 2020-8-22 17:51 编辑



有道设的反爬呗,就是为了迷惑你

你不妨直接访问这两个网址试试看:

http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule

http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule

def花 发表于 2020-8-22 17:51:12

Twilight6 发表于 2020-8-22 17:50
有道设的反爬呗,就是为了迷惑你

那这个以后遇到了岂不是懵逼了

Twilight6 发表于 2020-8-22 17:51:47

def花 发表于 2020-8-22 17:51
那这个以后遇到了岂不是懵逼了

哈哈,很多人来论坛发过这个的求助帖子

°蓝鲤歌蓝 发表于 2020-8-22 19:05:14

1. 最佳答案的两个链接点击都算是 get 请求,明显这两个 url 都应该是用 post 请求的。
2. 两个 url 都能获得最终结果,只是不去 o 的那个有 js 加密,需要破解才可以爬取,去 o 的那个我个人觉得是有道内部用的,不小心传出来了。

°蓝鲤歌蓝 发表于 2020-8-22 19:07:05

1. 最佳答案的两个 url 点击都是 get 请求,但是这两个 url 都是用于 post 请求的。
2. 两个 url 都是有效的,只是不去 o 的需要破解 js 加密。我个人觉得去 o 的是有道内部传出来的。
页: [1]
查看完整版本: 为什么少了个 _o才能正常运行?