-
代码如下,一直无法连接上NASA的API是为什么呢import loggingfrom typing import Dict, Listfrom astroquery.jplhorizons import Horizonsfrom astropy.time import Timeimport astropy.units as uimport pandas as pdimport timeimport randomimport requestsfrom requests.adapters import HTTPAdapterfrom urllib3.util.retry import Retryfrom tqdm import tqdm # ============== 日志配置 ==============logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')logger = logging.getLogger(__name__) # ============== 代理池配置 ==============try: import socks # 检测 SOCKS5 支持 PROXY_POOL = [ {"host": "104.248.63.15", "port": 30588, "type": "http"}, {"host": "104.248.63.18", "port": 30588, "type": "http"}, {"host": "104.248.63.17", "port": 30588, "type": "http"}, {"host": "104.248.63.49", "port": 30588, "type": "http"}, {"host": "45.77.71.140", "port": 9050, "type": "socks5"} ]except ImportError: logger.warning("未检测到 SOCKS5 支持,已过滤 SOCKS 代理") PROXY_POOL = [ p for p in [ {"host": "104.248.63.15", "port": 30588, "type": "http"}, {"host": "104.248.63.18", "port": 30588, "type": "http"}, {"host": "104.248.63.17", "port": 30588, "type": "http"}, {"host": "104.248.63.49", "port": 30588, "type": "http"} ] if p["type"] != "socks5" ]class SmartProxyPool: """智能代理池(自动淘汰失效代理)""" def __init__(self, proxies: List[Dict]): self.proxies = [{ "url": self._format_url(p), "success": 0, "fail": 0, "score": 100.0 } for p in proxies] @staticmethod def _format_url(proxy: Dict) -> str: """生成代理URL""" if proxy["type"] == "socks5": return f'socks5://{proxy["host"]}:{proxy["port"]}' return f'http://{proxy["host"]}:{proxy["port"]}' def get_best_proxy(self) -> Dict: """选择最优代理""" self.proxies.sort(key=lambda x: x["score"], reverse=True) return { 'http': self.proxies[0]["url"], 'https': self.proxies[0]["url"] } def update_score(self, proxy_url: str, success: bool): """更新代理评分""" for p in self.proxies: if p["url"] == proxy_url: if success: p["success"] += 1 p["score"] = min(p["score"] * 1.1, 100.0) else: p["fail"] += 1 p["score"] *= 0.5 break proxy_pool = SmartProxyPool(PROXY_POOL) # ============== 网络会话 ==============def create_secure_session() -> requests.Session: """创建增强型网络会话""" session = requests.Session() session.proxies = proxy_pool.get_best_proxy() # 重试策略(指数退避 + 随机抖动) retry = Retry( total=5, backoff_factor=0.5 + random.random(), # 随机抖动 status_forcelist=[500, 502, 503, 504], allowed_methods=frozenset(['GET', 'POST']), respect_retry_after_header=True ) adapter = HTTPAdapter( max_retries=retry, pool_connections=50, pool_maxsize=100, pool_block=True ) session.mount('https://', adapter) session.mount('http://', adapter) def request_with_retry(method: str, url: str, **kwargs): """带代理切换的重试机制""" for _ in range(3): current_proxy = session.proxies try: resp = session.request( method=method, url=url, timeout=(20, 40), **kwargs ) resp.raise_for_status() proxy_pool.update_score(current_proxy['http'], True) return resp except (requests.ProxyError, requests.ConnectTimeout) as e: proxy_pool.update_score(current_proxy['http'], False) logger.warning(f"代理 {current_proxy} 失败: {str(e)}") session.proxies = proxy_pool.get_best_proxy() raise requests.ConnectionError("所有代理尝试失败") session.request = request_with_retry return session # 注入全局会话Horizons._session = create_secure_session() # ============== 天体数据 ==============SOLAR_SYSTEM_IDS = { "Sun": 10, "Mercury": 199, "Venus": 299, "Earth-Moon Bary": 3, "Mars": 499, "Jupiter": 599, "Saturn": 699, "Uranus": 799, "Neptune": 899, "Pluto": 999} # ============== 参数配置 ==============EPOCH = Time.now().utc # 使用 UTC 时间OBSERVER = '500@0'QUANTITIES = '1,9,15,19,20,23' # ============== 核心函数 ==============def get_solar_positions() -> pd.DataFrame: """获取所有天体的位置数据""" results = [] for name, obj_id in tqdm(SOLAR_SYSTEM_IDS.items(), desc="查询进度"): try: obj = Horizons( id=obj_id, location=OBSERVER, epochs=EPOCH.jd, id_type='id' ) eph = obj.ephemerides(quantities=QUANTITIES)[0] # 安全获取字段 results.append({ "Name": name, "RA (hms)": f"{eph.get('RA', 'N/A'):.3f}h", "DEC (dms)": f"{eph.get('DEC', 'N/A'):.3f}°", "Distance (au)": f"{eph.get('delta', 'N/A'):.5f}", "Apparent Mag": f"{eph.get('V', 'N/A'):.1f}", "Angular Size ('')": f"{eph.get('ang_width', 'N/A'):.2f}", "Sky Motion": f"{eph.get('RA_rate', 'N/A'):.2f}/{eph.get('DEC_rate', 'N/A'):.3f}''/min", "Light Time (min)": f"{(eph.get('lighttime', 0) * 1440):.1f}" if eph.get('lighttime') else 'N/A' }) except (requests.HTTPError, KeyError) as e: logger.error(f"数据错误 [{name}]: {str(e)}") results.append({"Name": name, "Error": "数据解析失败"}) except requests.RequestException as e: logger.error(f"网络错误 [{name}]: {str(e)}") results.append({"Name": name, "Error": "连接超时"}) except Exception as e: logger.error(f"未知错误 [{name}]: {str(e)}") results.append({"Name": name, "Error": "系统异常"}) return pd.DataFrame(results) # ============== 主程序 ==============if __name__ == "__main__": logger.info("正在获取数据,可能需要1-2分钟...") df = get_solar_positions() print(f"\n====== 太阳系天体坐标(UTC {EPOCH.iso})======") print(df.to_markdown(index=False)) df.to_csv('solar_system_positions.csv', index=False) logger.info("结果已保存至 solar_system_positions.csv")
-
在谷歌Chrome浏览器的“沉浸式翻译”插件中,想调用华为云的自然语言处理NLP的机器翻译API,需要填写“自定义API接口地址”、“模型”、“System Prompt”、“Prompt”、“Multiple Prompt”、“Subtitle Prompt”这几项,请问这几项应该填什么?
-
程序部分:控制台输出部分:详细data:
-
这边使用HCS API进行对接使用二级的VDC domain和二级的VDC用户和获取token时报 401;使用一级的VDC domain和二级的VDC用户可以获取到token;请问下使用二级VDC domain和二级VDC下用户是不是不支持认证? 请求地址:https://ip:port/v3/auth/tokens payload = {"auth": { "identity": { "methods": ["password"], "password": {"user": { "name": username, "password": password, "domain": {"name": domain} #mo_bss_admin }} }, "scope": {"domain": {"name": domain}} #mo_bss_admin }}
-
问题来源: 亿迅问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25期望解决时间:尽快需求:复合CELL进行三次菜单输入校验,错误时提示输入错误重新输入,三次挂机问题:1.第一次播放07100074.wav(自助服务请按1),还没等到超时时间就触发了超时事件首次输入超时设置了240秒2.超时之后播放99000001.wav(输入错误请重新输入)+重新播放 07100074.wav(自助服务请按1) 都失败了,Get MSG_SSP_SCP_PLAYRECORD_RES, but the result is NOT success! msg.result=0上图 07100074.wav可以播放3. 再播放99000001.wav(输入错误请重新输入)99000001.wav 前面一次放音失败了4.超过三次错误挂机
-
【问题来源】【必填】亿迅【问题简要】【必填】坐席发起挂起转IVR进行身份验证,验证方挂断,无法根据事件区分是IVR验密返回还是挂机【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.100.0【期望解决时间】【选填】在线等【问题现象描述】【必填】1、电话呼入坐席11015接听2、11015发起一个挂起转身份验证IVR3、用户在身份验证IVR挂断4、坐席工作台无法根据事件区分是IVR结束返回坐席,还是用户在IVR中挂机
-
场景:API开发后,进行测试,界面一直转圈,无法使用
-
【问题来源】交通银行【问题简要】agentdemo【问题类别】【AICC】【AICC解决方案版本】【23.200】【问题现象描述】agentdemo支持输入6位工号【日志或错误截图】
-
将一个包含中文的文件(格式已设置为UTF-8)存入桶,然后通过api的方式获取对象,内容解析时中文乱码。我把所有知道的编码格式都转了一遍都拿不到中文:1. ASCII (American Standard Code for Information Interchange)2. UTF-8 (Unicode Transformation Format-8)3. UTF-16 (Unicode Transformation Format-16)4. ISO-8859-1 (Latin-1)5. GB2312 (Chinese Simplified)6. GBK (Chinese Simplified)7. Big5 (Chinese Traditional)8. Shift JIS (Japanese)9. EUC-KR (Korean)10. UTF-32 (Unicode Transformation Format-32)
-
问题来源: 亿迅问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25期望解决时间:尽快需求:客户排队30秒需要播放语音 按1继续排队,留言请按2 目前实现方法:队列设置排队超时溢出IVR,播放语音按1重回队列 问题: 1,溢出到IVR的时候不算排队时间了,排队数也没了,排队数也不会再计算了,报表的排队时间和排队数就不准 2,溢出到IVR会重新开始排队,再很忙的时候会不会一直排不到他?
-
问题来源: 亿迅问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25问题简要: 在跟第三方机器人对接过程中使用呼叫建立CELL,传递user-to-user 数据请求被拒接,SIP 400 请求不被理解 不加user-to-user之后,可以正常转接到对方,请问是哪里的问题呢?
-
问题来源: 亿迅问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25问题简要: 1. IVR 调用请求路由CELL之后查询是否有空闲坐席,没有就播放排队音乐,有空闲坐席再调用转移呼叫CELL,但是在IVR播放排队音的时候CMS监控不到排队数,请问我在未调用转移呼叫CELL的时候算在排队吗?2 . 如果单纯调用请求请求路由CELL,未调用转移呼叫CELL不算排队,那么我排队溢出到IVR让用户输入继续排队请按1,排队位置会变吗?如何不改变客户的排队位置实现 继续排队请按1的逻辑呢?
-
问题来源: 中信保诚人寿问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25问题描述: 修改过的复合CELL在SCE工具里面再次打开就回退了,或者删除的复合CELL在下次打开又出现在复合CELL库里面,请问如何避免呢?
-
问题来源: 中信保诚人寿问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25问题描述: WEB请求的CELL如何查看请求日志呢?请求错误之后看不到请求体调试很麻烦
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签