鱼C论坛

 找回密码
 立即注册
查看: 2121|回复: 14

[已解决]课程54论一只爬虫的自我修养2:实战,有道网站Formdata有变。

[复制链接]
发表于 2018-2-17 22:39:14 | 显示全部楼层 |阅读模式

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

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

x
原客程中的formdata 内容已变成如下图样式,故我处代在执行后{"errorCode":50},无法成功,请问要怎么解。 微信图片_20180217223726.png
最佳答案
2018-2-22 10:56:39
我试着用小鱼老师教的方式,修正data form,程式如下,还可以运行成功,供参。
  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. content = input("请输入需要翻译的内容:")

  5. url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/"
  6. data = {}
  7. data['i'] = content
  8. data['from'] = 'AUTO'
  9. data['to'] = 'AUTO'
  10. data['smartresult'] = 'dict'
  11. data['client'] = 'fanyideskweb'
  12. data['salt'] = '1519180629227'
  13. data['sign'] = 'e2261e9c5853cb410635984e41a144a0'
  14. data['doctype'] = 'json'
  15. data['version'] = '2.1'
  16. data['keyfrom'] = 'fanyi.web'
  17. data['action'] = 'FY_BY_REALTIME'
  18. data['typoResult'] = 'false'
  19. data = urllib.parse.urlencode(data).encode('utf-8')

  20. response = urllib.request.urlopen(url, data)
  21. html = response.read().decode('utf-8')
  22. target = json.loads(html)

  23. print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-17 22:50:19 | 显示全部楼层
贴你写的代码出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-18 11:05:18 From FishC Mobile | 显示全部楼层
我也是出错了,一样的错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-22 10:56:39 | 显示全部楼层    本楼为最佳答案   
我试着用小鱼老师教的方式,修正data form,程式如下,还可以运行成功,供参。
  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. content = input("请输入需要翻译的内容:")

  5. url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/"
  6. data = {}
  7. data['i'] = content
  8. data['from'] = 'AUTO'
  9. data['to'] = 'AUTO'
  10. data['smartresult'] = 'dict'
  11. data['client'] = 'fanyideskweb'
  12. data['salt'] = '1519180629227'
  13. data['sign'] = 'e2261e9c5853cb410635984e41a144a0'
  14. data['doctype'] = 'json'
  15. data['version'] = '2.1'
  16. data['keyfrom'] = 'fanyi.web'
  17. data['action'] = 'FY_BY_REALTIME'
  18. data['typoResult'] = 'false'
  19. data = urllib.parse.urlencode(data).encode('utf-8')

  20. response = urllib.request.urlopen(url, data)
  21. html = response.read().decode('utf-8')
  22. target = json.loads(html)

  23. print("翻译结果:%s" % (target['translateResult'][0][0]['tgt']))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-25 00:13:20 | 显示全部楼层
soonna 发表于 2018-2-22 10:56
我试着用小鱼老师教的方式,修正data form,程式如下,还可以运行成功,供参。

非常感谢,我试着研究下我的问题出在哪里。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-25 00:22:31 | 显示全部楼层
我通过headers 里面找到的URL 就是Request URL:http://fanyi.youdao.com/translat ... mp;smartresult=rule  ,请问你是怎么找到"http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/"这个URL的呢?
微信图片_20180225002036.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 14:16:02 | 显示全部楼层
我直接套用小鱼老师的网址,但你可以将?前的o删除,也是可以运行。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-2-25 23:46:46 | 显示全部楼层
soonna 发表于 2018-2-25 14:16
我直接套用小鱼老师的网址,但你可以将?前的o删除,也是可以运行。

OK,兄弟,可否问一下,你是如何发现将?前的O删除也是可以运行的,,我是编程小白希望能指点一二,谢啦。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-26 09:30:23 | 显示全部楼层
这是站上的兄弟跟我说的,我也是小白,刚起步学习,与你共勉。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-28 00:48:21 | 显示全部楼层
soonna 发表于 2018-2-26 09:30
这是站上的兄弟跟我说的,我也是小白,刚起步学习,与你共勉。

谢啦,共勉。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 18:05:19 | 显示全部楼层
fanyi.youdao.com-o  -o删除就可以了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-1 00:53:35 | 显示全部楼层
PYYP 发表于 2018-2-28 18:05
fanyi.youdao.com-o  -o删除就可以了

谢谢,不理解这个fanyi.youdao.com-o 在哪找到的,,为何要删除它
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-1 17:09:45 | 显示全部楼层
ff174422523 发表于 2018-3-1 00:53
谢谢,不理解这个fanyi.youdao.com-o 在哪找到的,,为何要删除它

伪装过了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-10 19:10:37 | 显示全部楼层
ff174422523 发表于 2018-2-25 00:22
我通过headers 里面找到的URL 就是Request URL:http://fanyi.youdao.com/translate_o?smartresult=dict&sma ...

兄弟我也是这个URL,请问你知道怎么找了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-11 12:49:28 | 显示全部楼层
ff174422523 发表于 2018-3-1 00:53
谢谢,不理解这个fanyi.youdao.com-o 在哪找到的,,为何要删除它

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

里面的_o
代码分享:
ZZ0~1Q]QSZ0VZ@8LKHAHK`P.png

ps:我的开发平台有些不一样
@GFA9}049H%YUDF}Z%0X%DR.png
我的form data 在这个请求正文中,提供参考
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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