鱼C论坛

 找回密码
 立即注册
查看: 5596|回复: 6

[已解决]Python第54课中论爬虫的自我修养

[复制链接]
发表于 2017-7-31 19:21:20 | 显示全部楼层 |阅读模式

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

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

x
跟着小甲鱼老师打了一遍代码结果我的就跟老师的不一样。
代码如下
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}

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

最佳答案
2017-7-31 19:32:41
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'

  1. import urllib.request
  2. import urllib.parse

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


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

  20. print(html)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-7-31 19:32:41 | 显示全部楼层    本楼为最佳答案   
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'

  1. import urllib.request
  2. import urllib.parse

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


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

  20. print(html)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 21:16:43 | 显示全部楼层
ba21 发表于 2017-7-31 19:32
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult= ...

下面是您给的参考代码吗?我看跟我的一样啊,哪个借口变了啊?我是根据我目前的表单录入的data,一开始运行了一遍是没有问题的,不知道为什么我重新运行一次就不行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-31 21:18:51 | 显示全部楼层
ba21 发表于 2017-7-31 19:32
教程有这么久了,接口变了。。
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult= ...

刚才用您给的 url替换了我现在的,就可以了~~为什么啊,O(∩_∩)O谢谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-7-31 21:20:31 | 显示全部楼层
你需要先把python 加入到命令终端 然后添加pip 让pip去下载模块就能使用了,教程https://jingyan.baidu.com/article/00a07f3850852b82d028dc9d.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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'也是没问题的。这是为什么啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

去了解下抓包的知识。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 05:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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