python爬虫语音转文字api最后一步处理求助

爱必应

字体大一些,程序员看着舒服
整体框架是完成了的 可以说完成了99%
目前遇到的问题是最后一步 获取语音转换文字的结果
我先上两张图,
这一张是包含所有功能的图,图中可以看到,最后一步请求的时候 ,返回的结果是 不合法的查询

python爬虫语音转文字api最后一步处理求助-图1

下面这一张是测试函数的图,只有最后一步的功能 就是请求转换结果, 图中的函数就是直接从上面的图复制过来的,没有什么差异  但问题是   它请求成功了!!!!!

python爬虫语音转文字api最后一步处理求助-图2

…..代码是一样的代码  怎么一个成功一个不成功呢   考虑到请求频率的问题  实际上我是给了网站转换时间的 不说5秒  10秒我都试过  都是 不合法查询
心都累了

明明是一样的函数  为何一个不能合法请求 一个能合法请求呢???  我心里阴影面积有多大?

全部功能脚本:
[Python] 纯文本查看 复制代码

# [font=-apple-system, BlinkMacSystemFont, "]from requests_toolbelt import MultipartEncoder[/font]import requests, re, timeimport logging# 初始化日志输出格式LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"# 配置日志输出级别logging.basicConfig(level=logging.INFO, format=LOG_FORMAT)start_url = "https://app.xunjiepdf.com/voice2text/"token_url = "https://app.xunjiepdf.com/api/producetoken"upload_url = r"https://app.xunjiepdf.com/api/Upload?tasktype=voice2text&machineid={macid}&token={token}&pdfname={path}&queuekey={guid}&filecount=1&fileindex=1&picturerotate=0&filesequence=0&isshare=0&fileCountwater=1&languagefrom=zh-CHS&id=WU_FILE_0&type=audio%2Fmp3"result_url = "https://app.xunjiepdf.com/api/Progress"HEADERS = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"}def getMachineid(): '''获取machineid''' res = requests.get(start_url, headers=HEADERS) if res.status_code == 200: try: machineid = re.findall( r'id="usertemptag" value="(.*)"', res.text)[0] logging.info("machineid:" + machineid) return machineid except IndexError as e: logging.error("machineid捕获错误:" + e) exit() else: logging.error("start_url访问出错:" + str(res.status_code)) exit()def getToken(macid): '''获取token和guid''' upheaders = HEADERS upheaders.update({"Accept": "application/json, text/javascript, */*; q=0.01"}) data = { "machineid":macid, } res = requests.post(token_url, headers=upheaders,data=data) if res.status_code == 200: content = res.json() if content["code"] == 10000: guid = content["guid"] token = content["token"] logging.info("token为:" + token) logging.info("guid为:"+ guid) return [token, guid] else: logging.error("Token获取出错:" + str(content["code"])) exit() else: logging.error("token_url访问出错:" + str(res.status_code)) passdef uploadFile(macid, token, guid, path): '''上传音频文件''' # data = MultipartEncoder( # fields={ # "Filedata":(path,open(path,"rb"),"audio/mp3") # } # ) files = {"file":open(path, "rb")} upheaders = HEADERS upheaders.update({"content-type": "audio/mp3"}) url = upload_url.format(macid=macid, token=token, path=path,guid=guid) res = requests.post(url, headers=upheaders, files=files) print(res.url) if res.status_code == 200: concent = res.json() print(concent) logging.info("上传状态:" + concent["message"]) if concent["message"] != "上传成功": exit() else: logging.error("上传访问出错:" + str(res.status_code)) exit()def getResult(guid): '''获取转换结果''' data= { "tasktag": guid, "limituse":1 } res = requests.post(result_url, data=data, headers=HEADERS) if res.status_code == 200: content = res.json() print(content) logging.info("处理状态:" + content["message"]) if content["message"] == "处理成功": return content["txtconent"] else: print("请等待迅捷解析.....") return -1 else: logging.error("获取结果出错:" + str(res.status_code)) exit()if __name__ == "__main__": # 获取macid macid = getMachineid() # 获取网站验证token token, guid = getToken(macid) # 上传音频文件 uploadFile(macid, token, guid, "给面子.mp3") # 获取转换结果 for i in range(5): # 休眠5秒,等待网站解析 logging.info("休眠5秒,等待网站解析") time.sleep(5) text = getResult(guid) if text != -1: print(text.strip())

测试功能脚本:
[Python] 纯文本查看 复制代码

# [font=-apple-system, BlinkMacSystemFont, "]from requests_toolbelt import MultipartEncoder[/font]import requestsimport loggingresult_url = "https://app.xunjiepdf.com/api/Progress"HEADERS = { "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"}def getResult(guid): '''获取转换结果''' data= { "tasktag": guid, "limituse":1 } res = requests.post(result_url, data=data, headers=HEADERS) if res.status_code == 200: content = res.json() print(content) logging.info("处理状态:" + content["message"]) if content["message"] == "处理成功": return content["txtconent"] else: print("请等待迅捷解析.....") return -1 else: logging.error("获取结果出错:" + str(res.status_code)) exit()text = getResult("310bf2de52a0493eb45a664a9f97d4bd")if text != -1: print(text.strip())

声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。

原文链接:,转发请注明来源!

发表评论