鱼C论坛

 找回密码
 立即注册
查看: 28020|回复: 61

[已解决]python爬虫代码问题

[复制链接]
发表于 2017-4-30 14:42:14 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 当回首遇上转身 于 2017-4-30 14:48 编辑

操作系统:Windows 7      Python版本 3.5.2
求解两行选定代码应该怎么修改?

"""
  1. import urllib.request
  2. import urllib.parse
  3. import json

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

  5. url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=null'
  6. data = {}
  7. # data['i'] = 'I love FishC.com'
  8. data['i'] = content
  9. data['from'] = 'AUTO'
  10. data['to'] = 'AUTO'
  11. data['smartresult'] ='dict'
  12. data['client'] = 'fanyideskweb'
  13. data['salt'] = '1493538230701'
  14. data['sign'] = '7b50be5ddda95bce3d4b7b9404647cec'
  15. data['doctype'] = 'json'
  16. data['version'] = '2.1'
  17. data['keyfrom'] = 'fanyi.web'
  18. data['action'] = 'FY_BY_CTRL_ENTER'
  19. data['typoResult'] = 'true'
  20. data = urllib.parse.urlencode(data).encode('utf-8')

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

  23. print(html)

  24. """
  25. target = json.loads(html)
  26. print("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))
  27. """
复制代码


求解这两行代码如何修改?

  1. data['salt'] = '1493538230701'
  2. data['sign'] = '7b50be5ddda95bce3d4b7b9404647cec'
复制代码
最佳答案
2017-4-30 16:26:57
data['salt'] = '1493538230701'  这个应该是个时间戳,
data['sign'] = '7b50be5ddda95bce3d4b7b9404647cec' 应该是根据时间戳+你要翻译的内容加密后生成的验证字段。
除非你知道网站的加密方法,不然基本上是破解不了的,所以你直接这样爬是爬不到的,只会返回给你一个错误代码。
解决办法有2个:
1. 同样是有道翻译,url和data用下面这个
  1.     url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc'
  2.     data = {
  3.         "type" : "AUTO",
  4.         "i" : sentence,
  5.         "doctype" : "json",
  6.         "xmlVersion" : "1.8",
  7.         "keyfrom" : "fanyi.web",
  8.         "ue" : "UTF-8",
  9.         "action" : "FY_BY_CLICKBUTTON",
  10.         "typoResult" : "true"
  11.     }
复制代码

这个是不需要验证字段的,所以可以直接爬。

2.如果你一定要爬你这个页面的话,那就用selenium+phantomjs模拟浏览器,也是可以爬到的,但是速度会比较慢一些。
QQ图片20170430143955.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-30 16:51:05 | 显示全部楼层
jerryxjr1220 发表于 2017-4-30 16:26
data['salt'] = '1493538230701'  这个应该是个时间戳,
data['sign'] = '7b50be5ddda95bce3d4b7b9404647c ...

谢谢大神解答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-4 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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