小虾米66 发表于 2017-7-31 19:21:20

Python第54课中论爬虫的自我修养

跟着小甲鱼老师打了一遍代码结果我的就跟老师的不一样。
代码如下
import urllib.request
import urllib.parse

url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'
data={}
data['type'] = 'AUTO'
data['i'] = 'I love fishc.com!'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['typoResult'] = 'true'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1501492533710'
data['sign'] = '283abd8aef7ec9a35262a7b5c6d4dca0'
data['action'] = 'FY_BY_CLlCKBUTTON'
data = urllib.parse.urlencode(data).encode('utf-8')


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

print(html)

其中data数据是学着小甲鱼大大的步骤把网页上的检查元素中的表单抄下来的
我的表单如下:
i:I love fishc.com!
from:AUTO
to:AUTO
smartresult:dict
client:fanyideskweb
salt:1501499680872
sign:6a030667331e40fd8959e928c1baf734
doctype:json
version:2.1
keyfrom:fanyi.web
action:FY_BY_CLlCKBUTTON
typoResult:true

运行结果为
=============== RESTART: F:\小甲鱼—《零基础入门学习Python》\translation.py ===============
{"errorCode":50}

不知道为什么,,,找半天没找到原因,求大神指导~~先谢谢了~

ba21 发表于 2017-7-31 19:32:41

教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'

import urllib.request
import urllib.parse

url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'
data={}
data['type'] = 'AUTO'
data['i'] = 'I love fishc.com!'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['typoResult'] = 'true'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1501492533710'
data['sign'] = '283abd8aef7ec9a35262a7b5c6d4dca0'
data['action'] = 'FY_BY_CLlCKBUTTON'
data = urllib.parse.urlencode(data).encode('utf-8')


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

print(html)

小虾米66 发表于 2017-7-31 21:16:43

ba21 发表于 2017-7-31 19:32
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult= ...

下面是您给的参考代码吗?我看跟我的一样啊,哪个借口变了啊?我是根据我目前的表单录入的data,一开始运行了一遍是没有问题的,不知道为什么我重新运行一次就不行了

小虾米66 发表于 2017-7-31 21:18:51

ba21 发表于 2017-7-31 19:32
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult= ...

刚才用您给的 url替换了我现在的,就可以了~~为什么啊,O(∩_∩)O谢谢~

tcd700 发表于 2017-7-31 21:20:31

你需要先把python 加入到命令终端 然后添加pip 让pip去下载模块就能使用了,教程https://jingyan.baidu.com/article/00a07f3850852b82d028dc9d.html

小虾米66 发表于 2017-7-31 21:49:39

ba21 发表于 2017-7-31 19:32
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult= ...

你好,打扰一下,请问可以告诉我为什么sessionFrom=https://www.baidu.com/link'要这样设置吗?
我在检查元素里面的network找半天都没找到sessionFrom=后面应该写什么。
我尝试了一下sessionFrom=https://www.google.cn/link'也是没问题的。这是为什么啊

ba21 发表于 2017-7-31 21:53:03

小虾米66 发表于 2017-7-31 21:49
你好,打扰一下,请问可以告诉我为什么sessionFrom=https://www.baidu.com/link'要这样设置吗?
我在检 ...

去了解下抓包的知识。
页: [1]
查看完整版本: Python第54课中论爬虫的自我修养