Python 爬取百度翻译使用requests模块发送post请求时-发生异常997

本文介绍了如何在Android环境下,利用Python的requests库进行API调用。通过设置正确的headers,特别是Cookie信息,来解决997错误。示例代码展示了查询翻译API的流程,从获取数据到解码输出翻译结果,揭示了在API交互中cookie的重要性。
摘要由CSDN通过智能技术生成

 原因:主要是sign与Cookie,每次重新输入字符串的时候就会发生变化

 解决:必须要添加对应的Cookie,才可以取到数据,否则就发生异常997

首先:使用Android的方式:

查看: 

代码:使用JSON将数据取出来

import requests
import json


# ctrl+alt+L
# 注意头部必须添加cookie,否则异常:997
headers = {
    "user-agent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Mobile Safari/537.36",
    "cookie": "BIDUPSID=A8DEAA573FFED7DD56EF166E375515B3; PSTM=1600160803; BAIDUID=A8DEAA573FFED7DD99F8C100C4C915EC:FG=1; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_WISE_SIDS=148077_152522_152776_154615_149356_150967_152055_156816_156286_150775_154258_148867_154606_151897_153628_156623_157263_146871_154172_151016_156712_156516_127969_154175_150772_152982_155908_146732_157996_131424_154038_155530_107314_156876_156213_154189_155344_152408_158025_157790_144966_157406_154213_157814_139882_156099_155848_154146_147551_157028_157162_157697_152310_154270_155864_110085_157006; Hm_lvt_afd111fa62852d1f37001d1f980b6800=1601369898; delPer=0; PSINO=5; H_PS_PSSID=32816_32617_1423_32791_7567_7543_31253_32723_32230_7517_7605_32116_31708_22157; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1600840072,1600929110,1601365704,1601439452; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1601439452; __yjsv5_shitong=1.0_7_85fcee6d0cea49e6330c0566145bf9aaf4ba_300_1601439449138_122.235.174.76_45ffc994; yjs_js_security_passport=b1f03c61ebba307909dda538856d3d211cf06779_1601439449_js"
}
data = {
    "query": "好好学习,我学习python",
    "from": "zh",
    "to": "en",
    "token": "63cc1a0e6c0d623bbe3e11972fcbf7d9",
    "sign": "425577.171352"
}

# url
url_post = "https://fanyi.baidu.com/basetrans"

# 请求数据
response = requests.post(url_post, data=data, headers=headers)

# 输出 error=997 发生异常(有token加密和sign标记)
# print(response.content.decode())

result = json.loads(response.content.decode())
# # 显示数据
print(result["trans"][0]["dst"])

执行效果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值