鱼C论坛

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

[已解决]python爬虫百度翻译

[复制链接]
发表于 2024-3-1 17:13:41 | 显示全部楼层 |阅读模式
7鱼币

import requests
# sr=input("你要看什么:")
url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest"
    'Date": "Fri, 01 Mar 2024 09:02:01 GMT'
}
date = {
    "query": "你好 我手里面有鬼",
    "transtype": "enter",
    "simple_means_flag": "3",
    "sign": "555931.825514",
    "token": "fce0eb43996cf5da240ef921aa91dead",
    "domain": "common",
    "ts": "1709283726909",
}
response = requests.post(url, headers=headers,data=date)

ss = response.json()
print(response.json())

打印的内容是
{'errno': 997, 'errmsg': '未知错误', 'logid': 731108572, 'query': '你好 我手里面有鬼', 'from': 'zh', 'to': 'en', 'error': 997}
还有哪个参数是必填的吗  怎么查看是必填的数据呢
最佳答案
2024-3-1 17:13:42
根据你提供的代码和结果,可以看出爬取百度翻译接口时出现了错误。要解决这个问题,首先需要查看接口文档,找到必填的参数。

在百度翻译接口中,必填的参数有:query(待翻译的文本),token(根据浏览器中cookie生成的token),sign(根据当前时间戳和token生成的签名值),ts(当前的时间戳),from(源语言)和to(目标语言)。

根据你的代码,已经提供了query参数,但其他参数可能缺失导致请求失败。具体的方法是使用浏览器进行一次正常的翻译操作,然后在开发者工具的"Network"面板中找到对应的请求,查看参数列表中的值并添加到你的代码中。

另外,你的代码中的headers字段中缺少一个逗号,可能会导致语法错误。修改后的代码示例如下:
import requests

url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
    "Date": "Fri, 01 Mar 2024 09:02:01 GMT"
}
data = {
    "query": "你好 我手里面有鬼",
    "transtype": "enter",
    "simple_means_flag": "3",
    "sign": "555931.825514",
    "token": "fce0eb43996cf5da240ef921aa91dead",
    "domain": "common",
    "ts": "1709283726909",
}
response = requests.post(url, headers=headers, data=data)

output = response.json()
print(output)

希望这个回答对你有帮助,祝你编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

最佳答案

查看完整内容

根据你提供的代码和结果,可以看出爬取百度翻译接口时出现了错误。要解决这个问题,首先需要查看接口文档,找到必填的参数。 在百度翻译接口中,必填的参数有:query(待翻译的文本),token(根据浏览器中cookie生成的token),sign(根据当前时间戳和token生成的签名值),ts(当前的时间戳),from(源语言)和to(目标语言)。 根据你的代码,已经提供了query参数,但其他参数可能缺失导致请求失败。具体的方法是使用浏 ...

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-1 17:13:42 | 显示全部楼层    本楼为最佳答案   
根据你提供的代码和结果,可以看出爬取百度翻译接口时出现了错误。要解决这个问题,首先需要查看接口文档,找到必填的参数。

在百度翻译接口中,必填的参数有:query(待翻译的文本),token(根据浏览器中cookie生成的token),sign(根据当前时间戳和token生成的签名值),ts(当前的时间戳),from(源语言)和to(目标语言)。

根据你的代码,已经提供了query参数,但其他参数可能缺失导致请求失败。具体的方法是使用浏览器进行一次正常的翻译操作,然后在开发者工具的"Network"面板中找到对应的请求,查看参数列表中的值并添加到你的代码中。

另外,你的代码中的headers字段中缺少一个逗号,可能会导致语法错误。修改后的代码示例如下:
import requests

url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
    "Date": "Fri, 01 Mar 2024 09:02:01 GMT"
}
data = {
    "query": "你好 我手里面有鬼",
    "transtype": "enter",
    "simple_means_flag": "3",
    "sign": "555931.825514",
    "token": "fce0eb43996cf5da240ef921aa91dead",
    "domain": "common",
    "ts": "1709283726909",
}
response = requests.post(url, headers=headers, data=data)

output = response.json()
print(output)

希望这个回答对你有帮助,祝你编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2024-3-1 17:25:11 | 显示全部楼层
添加 Cookie 就可以了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-1 17:25:25 | 显示全部楼层
tengke 发表于 2024-03-01 17:25
添加 Cookie 就可以了


确实,如果要在请求中添加 Cookie,可以在 headers 字典中加入 "Cookie": "your_cookie_value"。具体的做法是打开浏览器,登录百度翻译页面,然后在开发者工具的"Network"面板中找到对应的请求,查找 "Request Headers" 中的 "Cookie" 字段,并将其值添加到代码中。修改后的代码示例如下:
import requests

url = 'https://fanyi.baidu.com/v2transapi?from=zh&to=en'
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36",
    "X-Requested-With": "XMLHttpRequest",
    "Date": "Fri, 01 Mar 2024 09:02:01 GMT",
    "Cookie": "your_cookie_value"
}
data = {
    "query": "你好 我手里面有鬼",
    "transtype": "enter",
    "simple_means_flag": "3",
    "sign": "555931.825514",
    "token": "fce0eb43996cf5da240ef921aa91dead",
    "domain": "common",
    "ts": "1709283726909",
}

response = requests.post(url, headers=headers, data=data)
output = response.json()
print(output)

注意:由于 Cookie 是个人身份验证信息,需要保护好个人隐私,这里在示例中用 "your_cookie_value" 代替实际的 Cookie 值。在实际应用中,请使用你自己的 Cookie 值。希望这个回答对你有帮助,祝你编程愉快!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 07:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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