鱼C论坛

 找回密码
 立即注册
查看: 705|回复: 9

[已解决]Python3.7编码问题求助

[复制链接]
发表于 2019-5-25 20:27:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求翻牌:Python版本3.7,初学者,想问一下为什么使用 urllib.request 解码格式总是报错.

           具体的代码为:

import urllib.request
import urllib.parse

url = "http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
data ={}

data["i"] = "若不是你突然闯进我生活"
data["from"] = "AUTO"
data["to"] = "AUTO"
data["smartresult"] = "dict"
data["client"] = "fanyideskweb"
data["salt"] = "15587845124454"
data["sign"] = "3dcfcaa9631ddcc74e7b59f6f817bb42"
data["ts"] = "1558784512445"
data["bv"] = "64bf5afb3cca58e10e1392ed7a581832"
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")
print(html)

按照视频中的教程自己操作了一下,总是显示{"errorCode":50},想问一下是什么问题,感谢各位大神!!
最佳答案
2019-5-25 22:59:13
楼上说的都对。这里补充两点:
1. 若想用这个网址进行爬取,需要反反爬,有道的反爬措施我记得是 salt 和 sigh 这两个参数是由 js 加密的。
2. 若没有 js 基础,或者不想这么麻烦,可以把你代码中 url 里的那个 '_o' 去掉,然后再进行爬取就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-5-25 22:14:34 | 显示全部楼层
编码没问题是你自己post数据出错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-25 22:17:58 | 显示全部楼层
苏沫儿 发表于 2019-5-25 22:14
编码没问题是你自己post数据出错了

有道的已经发过好多帖子了,爬虫有效性很低的。你只能看思路,不能看代码。楼主可以搜下帖子,我觉得之前把-o这个去掉,具体你在论坛搜索。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-25 22:20:33 | 显示全部楼层
Stubborn 发表于 2019-5-25 22:17
有道的已经发过好多帖子了,爬虫有效性很低的。你只能看思路,不能看代码。楼主可以搜下帖子,我觉得之前 ...

回复我他好像看不到吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-25 22:21:38 | 显示全部楼层
苏沫儿 发表于 2019-5-25 22:20
回复我他好像看不到吧

我能说我回错了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-25 22:59:13 | 显示全部楼层    本楼为最佳答案   
楼上说的都对。这里补充两点:
1. 若想用这个网址进行爬取,需要反反爬,有道的反爬措施我记得是 salt 和 sigh 这两个参数是由 js 加密的。
2. 若没有 js 基础,或者不想这么麻烦,可以把你代码中 url 里的那个 '_o' 去掉,然后再进行爬取就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-25 23:01:50 | 显示全部楼层
通过分析  salt  ,sign  , ts,  bv  .都是变动的数值。所以你用固定的去请求就会出错。代码是没有问题的,errorcode  是参数提交有错误的返回 不算在解码有误里面。salt,  ts,  这分析js代码得出是时间戳,另外两个就是通过js计算的出来的所以,固定参数提交会出错。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-29 14:49:34 | 显示全部楼层
Stubborn 发表于 2019-5-25 22:17
有道的已经发过好多帖子了,爬虫有效性很低的。你只能看思路,不能看代码。楼主可以搜下帖子,我觉得之前 ...

看了其他的帖子,是我的url需要修改,在此感谢楼上楼下的各位热心朋友们!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-29 14:50:46 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-29 14:51:39 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 00:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表