鱼C论坛

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

[已解决]爬虫有道翻译出错原因

[复制链接]
发表于 2023-10-17 10:12:03 | 显示全部楼层 |阅读模式

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

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

x
请输入要翻译的句子:经济
Traceback (most recent call last):
  File "D:\学习\软件学习\EXCEL\python\小甲鱼Python视频教程\054论一只爬虫的自我修养2:实战\054论一只爬虫的自我修养2:实战translation.py", line 24, in <module>
    target = json.loads(html)
  File "C:\Program Files (x86)\Python38\lib\json\__init__.py", line 357, in loads
    return _default_decoder.decode(s)
  File "C:\Program Files (x86)\Python38\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Program Files (x86)\Python38\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
最佳答案
2023-10-17 10:12:56
这个错误可能是因为你对有道翻译API发送请求后获取到的响应内容不是JSON格式导致的。

可以检查一下你发送请求得到的html变量是否为空或者是否是一个空字符串。如果这个变量为空或者是空字符串,那么json.loads()方法会抛出Expecting value错误。

另外还需要确保你调用API时传入了正确的参数和headers,并且你的API key和secret key是有效的。如果这些都没有问题,可以考虑换一个API或者调试一下代码找出具体哪里出现了问题。

参考代码(仅供参考):

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-17 10:12:12 | 显示全部楼层
这个错误通常是由于爬虫获取的翻译结果返回为空导致的。在你的代码中, json.loads(html) 尝试解析获取到的结果,但是结果为空,无法解析成有效的JSON对象,因此抛出了 JSONDecodeError 。

解决这个问题的方法是,在解析之前先检查获取到的结果是否为空。你可以使用条件语句来判断结果是否为空,如果为空则进行相应的处理,例如打印错误信息或者进行其他操作。

下面是一个示例代码,你可以根据自己的需求进行修改:
import json

# 获取到的翻译结果
html = ""

# 判断结果是否为空
if html:
    target = json.loads(html)
    # 对解析后的结果进行操作
else:
    print("翻译结果为空")
    # 其他处理逻辑

通过添加对结果为空的判断,你就可以避免出现 JSONDecodeError 错误了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-17 10:12:35 | 显示全部楼层
这个错误是由于你试图解析的 JSON 对象为空或者不存在,导致 json.loads() 函数无法解析,从而抛出 JSONDecodeError: Expecting value: line 1 column 1 (char 0) 错误。

这个问题可能有以下几个原因:

1. 你的爬虫没有正确获取到网页的数据,或者获取到的数据不是 JSON 格式。你可以先打印出你爬虫获取到的数据,看看是否是有效的 JSON 格式。

2. 你的爬虫可能被有道翻译的服务器识别为机器人,从而被阻止访问。你可以尝试更换 IP 地址或者使用代理服务器,或者在请求头中添加更多的信息,如 User-Agent,来模拟真实的浏览器行为。

3. 有道翻译的 API 可能发生了变化,你的爬虫没有按照新的 API 规则来获取数据。你可以去有道翻译的官方网站查看最新的 API 文档,然后按照新的规则修改你的爬虫。

4. 如果你是在本地运行这个爬虫,那么可能是你的网络环境有问题,导致爬虫无法访问到有道翻译的服务器。你可以尝试更换网络环境,或者在其他机器上运行你的爬虫,看看是否能够成功获取数据。

总的来说,你需要先确定问题出在哪里,然后针对性地进行解决。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-17 10:12:56 | 显示全部楼层    本楼为最佳答案   
这个错误可能是因为你对有道翻译API发送请求后获取到的响应内容不是JSON格式导致的。

可以检查一下你发送请求得到的html变量是否为空或者是否是一个空字符串。如果这个变量为空或者是空字符串,那么json.loads()方法会抛出Expecting value错误。

另外还需要确保你调用API时传入了正确的参数和headers,并且你的API key和secret key是有效的。如果这些都没有问题,可以考虑换一个API或者调试一下代码找出具体哪里出现了问题。

参考代码(仅供参考):

球一个最佳答案谢谢啦!这对我非常重要!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 14:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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