鱼C论坛

 找回密码
 立即注册
查看: 2119|回复: 3

[已解决]关于爬虫的问题

[复制链接]
发表于 2021-4-3 16:59:55 | 显示全部楼层 |阅读模式

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

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

x
又白白在fishc混了一个月
问题又来了
刚刚看小甲鱼的MV,学着编一下代码,但是爬到的字典是那样的
↓代码如下↓
  1. #对应小甲鱼的0基础入门学习Python(P56)
  2. from urllib import request
  3. from urllib import parse
  4. import json

  5. temp = input('Enter you want to translation content:')
  6. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=http://www.youdao.com/'

  7. head = {}#设置header
  8. head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36 Edg/89.0.774.63'

  9. data = {}#设置爬虫数据
  10. data['type']='AUTO'
  11. data['i']=temp
  12. data['doctype']='json'
  13. data['xmlVersion']='1.6'
  14. data['keyfrom']='fanyi.web'
  15. data['ue']='UFT-8'
  16. data['typoResult']='true'
  17. data = parse.urlencode(data).encode('utf-8')

  18. req = request.Request(url,data,head)#返回
  19. response = request.urlopen(req)
  20. html = response.read().decode('utf-8')

  21. target = json.loads(html)
  22. print(target)
  23. res = target['translateResult'][0][0]['tgt']
  24. print(res)
复制代码

爬到的结果
  1. Enter you want to translation content:你好
  2. {'type': 'UNSUPPORTED', 'errorCode': 30, 'elapsedTime': 2, 'translateResult': [[{'src': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com', 'tgt': '您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com'}]]}
  3. 您的请求来源非法,商业用途使用请关注有道翻译API官方网站“有道智云”: http://ai.youdao.com
复制代码
最佳答案
2021-4-3 21:33:22
供参考
  1. from urllib import request, parse
  2. import json


  3. def main():
  4.     trans = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  5.     headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"}
  6.     dic = {"doctype": "json"}
  7.     wd = input('请输入要翻译的内容: ')
  8.     dic['i'] = wd
  9.     data = bytes(parse.urlencode(dic), encoding='utf-8')
  10.     q = request.Request(url=trans, data=data, headers=headers, method='POST')
  11.     r = request.urlopen(q)
  12.     result = json.loads(r.read().decode('utf-8'))
  13.     print(result['translateResult'][0][0]['tgt'])


  14. if __name__ == '__main__':
  15.     main()
复制代码

本帖被以下淘专辑推荐:

  • · python|主题: 62, 订阅: 4
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-3 17:24:41 | 显示全部楼层
这些网页特别讨厌爬虫
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-3 21:33:22 | 显示全部楼层    本楼为最佳答案   
供参考
  1. from urllib import request, parse
  2. import json


  3. def main():
  4.     trans = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  5.     headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"}
  6.     dic = {"doctype": "json"}
  7.     wd = input('请输入要翻译的内容: ')
  8.     dic['i'] = wd
  9.     data = bytes(parse.urlencode(dic), encoding='utf-8')
  10.     q = request.Request(url=trans, data=data, headers=headers, method='POST')
  11.     r = request.urlopen(q)
  12.     result = json.loads(r.read().decode('utf-8'))
  13.     print(result['translateResult'][0][0]['tgt'])


  14. if __name__ == '__main__':
  15.     main()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-31 15:16:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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