鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: allearn_Python

[已解决]小甲鱼爬虫课程 - 爬虫访问在线翻译

[复制链接]
回帖奖励 10 鱼币 回复本帖可获得 5 鱼币奖励! 每人限 1 次
发表于 2020-12-17 17:51:08 | 显示全部楼层
allearn_Python 发表于 2020-12-17 17:41
可能是我不够帅哈哈哈哈哈   哎,这随便哪里蹦出个小问题我就不会了
还是感谢你
  1. import urllib.request
  2. import urllib.parse
  3. import json
  4. i=0

  5. print('输入0结束程序:')
  6. while 1:
  7.    
  8.     while True:
  9.         content=input('请输入需要翻译的内容:')
  10.         if content=='':
  11.             print('请重新输入:')
  12.         else:
  13.             break
  14.             
  15.     if content=='0':
  16.         break
  17.     if i==0:
  18.         
  19.         url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  20.         head={}
  21.         head['User-Agent']='Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'
  22.         data={}
  23.         data['i']=content
  24.         data['from']='AUTO'
  25.         data['to']='AUTO'
  26.         data['smartresult']='dict'
  27.         data['client']='fanyideskweb'
  28.         data['salt']='16079142839884'
  29.         data['sign']='7fa30595c70a9a765816fda28b64b9ac'
  30.         data['lts']='1607914283988'
  31.         data['bv']='4b9de992aa3d23c2999121d735e53f9c'
  32.         data['doctype']='json'
  33.         data['version']='2.1'
  34.         data['keyfrom']='fanyi.web'
  35.         data['action']='FY_BY_REALTlME'



  36.         data=urllib.parse.urlencode(data).encode('utf-8')
  37.         req=urllib.request.Request(url,data,head)
  38.         response=urllib.request.urlopen(req)

  39.         html=response.read().decode('utf-8')
  40.         target=json.loads(html)

  41.         print('翻译结果:%s'%(target['translateResult'][0][0]["tgt"]))
  42.         


复制代码

我换了个User-Agent你再试试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-17 17:53:38 | 显示全部楼层
小伤口 发表于 2020-12-17 17:51
我换了个User-Agent你再试试
  1. Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license()" for more information.
  3. >>>
  4. ============= RESTART: D:/03-其他/个人/Training Course/翻译协调标准/xin_1.py =============
  5. 输入0结束程序:
  6. 请输入需要翻译的内容:新的使用方
  7. Traceback (most recent call last):
  8.   File "D:/03-其他/个人/Training Course/翻译协调标准/xin_1.py", line 45, in <module>
  9.     target=json.loads(html)
  10.   File "C:\Users\Allen\AppData\Local\Programs\Python\Python38\lib\json\__init__.py", line 357, in loads
  11.     return _default_decoder.decode(s)
  12.   File "C:\Users\Allen\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 337, in decode
  13.     obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  14.   File "C:\Users\Allen\AppData\Local\Programs\Python\Python38\lib\json\decoder.py", line 355, in raw_decode
  15.     raise JSONDecodeError("Expecting value", s, err.value) from None
  16. json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
  17. >>>
复制代码


还是不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-17 17:57:40 | 显示全部楼层
小伤口 发表于 2020-12-17 17:51
我换了个User-Agent你再试试

刚开始运行时候是OK的,然后我用for循环不停循环读取excel里的英文句子去翻译(大概有1000多行),然后执行了好几分钟后就报这个错误,之后换User-agent, 换data 里面的值,重新运行你发的参考程序,都不行了,一直报这个错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-17 18:27:11 | 显示全部楼层
小伤口 发表于 2020-12-17 17:51
我换了个User-Agent你再试试

我换了个网络好了!!
然后加入了延时,顺利翻译了
  1. import urllib.request
  2. import urllib.parse
  3. import json
  4. import openpyxl
  5. import time

  6. #打开excel文件
  7. wb = openpyxl.load_workbook('MD - Summary list of harmonised standards.xlsx')
  8. ws = wb.active

  9. url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  10. head={}
  11. head['User-Agent']='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4098.3 Safari/537.36'
  12. data={}

  13. data['i']= ''
  14. data['from']='AUTO'
  15. data['to']='AUTO'
  16. data['smartresult']='dict'
  17. data['client']='fanyideskweb'
  18. data['salt']='16079142839884'
  19. data['sign']='7fa30595c70a9a765816fda28b64b9ac'
  20. data['lts']='1607914283988'
  21. data['bv']='4b9de992aa3d23c2999121d735e53f9c'
  22. data['doctype']='json'
  23. data['version']='2.1'
  24. data['keyfrom']='fanyi.web'
  25. data['action']='FY_BY_REALTlME'

  26. #定义翻译函数
  27. for each_row in ws.iter_rows(min_row=2,max_row=10):
  28.    
  29.     data['i'] = each_row[3].value
  30.     print(data['i'])
  31.         
  32.     data2 = urllib.parse.urlencode(data).encode('utf-8')
  33.     req=urllib.request.Request(url,data2, head)
  34.     response=urllib.request.urlopen(req)

  35.     html = response.read().decode('utf-8')
  36.     target = json.loads(html, strict=False)

  37.     each_row[3].value = target['translateResult'][0][0]["tgt"]
  38.     print(each_row[3].value)

  39.     time.sleep(8)
  40.    
  41.    

  42. wb.save('翻译.xlsx')
  43.    
  44.    
  45.         
复制代码


上面是程序

  1. Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
  2. Type "help", "copyright", "credits" or "license()" for more information.
  3. >>>
  4. =========== RESTART: D:\03-其他\个人\Training Course\翻译协调标准\Translate.py ===========
  5. Safety of machinery - General principles for design - Risk assessment and risk reduction (ISO 12100:2010)
  6. 机械安全-设计一般原则的风险评估和风险降低(ISO 12100:2010)
  7. Safety of machinery - Basic concepts, general principles for design - Part 1: Basic terminology, methodology (ISO 12100-1:2003)
  8. 机械安全——基本概念、一般原理设计-第1部分:基本术语、方法(ISO 12100 -声学)
  9. Safety of machinery - Basic concepts, general principles for design - Part 2: Technical principles (ISO 12100-2:2003)
  10. 机械安全-基本概念,设计一般原则-第2部分:技术原理(ISO 12100 - 2:2003)
  11. Safety of machinery - Risk assessment - Part 1: Principles (ISO 14121-1:2007)
  12. 机械安全-风险评估-第1部分:原则(ISO 14121 - 1:2007)
  13. Safety of machinery - Minimum gaps to avoid crushing of parts of the human body
  14. 机械安全——最小间隙避免破碎的人体的部分
  15. Safety of machinery - Human body measurements - Part 1: Principles for determining the dimensions required for openings for whole body access into machinery
  16. 机械安全-人体测量-第1部分:原则确定所需的尺寸为全身进入机械开口
  17. Safety of machinery - Human body measurements - Part 2: Principles for determining the dimensions required for access openings
  18. 机械安全-人体测量-第2部分:原则确定访问开口所需的尺寸
  19. Safety of machinery - Human body measurements - Part 3: Anthropometric data
  20. 机械安全-人体测量-第3部分:人体测量数据
  21. Safety of machinery - Two-hand control devices - Functional aspects - Principles for design
  22. 机械安全-双手控制装置功能方面为设计原则
  23. >>>
复制代码


这是执行结果。
可能是我前面访问太频繁,有道标记了我的IP吗?

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
小伤口 + 1 + 1 鱼C有你更精彩^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-12-17 18:47:57 | 显示全部楼层
allearn_Python 发表于 2020-12-17 18:27
我换了个网络好了!!
然后加入了延时,顺利翻译了

对,本来想试一试代理IP,没弄成功,既然好了,那俺就放心了,共同学习
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-17 18:59:36 | 显示全部楼层
小伤口 发表于 2020-12-17 18:47
对,本来想试一试代理IP,没弄成功,既然好了,那俺就放心了,共同学习

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

使用道具 举报

发表于 2020-12-21 09:34:06 | 显示全部楼层

回帖奖励 +5 鱼币

不懂帮顶
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-21 11:22:57 | 显示全部楼层

回帖奖励 +5 鱼币

看看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-21 19:19:37 | 显示全部楼层

回帖奖励 +5 鱼币

小白看不懂啊,,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-22 12:23:24 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-30 14:33:28 | 显示全部楼层

回帖奖励 +5 鱼币

支持
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-16 11:01:14 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-16 15:17:45 | 显示全部楼层

回帖奖励 +5 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 01:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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