You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.6.4中lxml-html读取空列表及XPATH提取STRaND-1轨道元素问题

解决方案:提取STRaND-1的轨道元素 + Xpath入门

嘿,我来帮你搞定这两个问题——先解决你当下的轨道元素提取需求,再给你讲清楚Xpath的用法~

为什么你的lxml-html会返回空列表?

首先得明确:你要读取的目标链接是纯文本文件,不是HTML或XML文档。而lxml.html的xpath()方法是用来解析带标签结构的文档(比如HTML网页、XML文件)的,纯文本里没有任何HTML标签节点,所以用xpath自然找不到内容,返回空列表是正常的。

正确提取纯文本中的STRaND-1轨道元素

针对纯文本的TLE(两行轨道元素)数据,我们直接用requests获取文本内容,然后按行筛选即可。Celestrak的TLE格式是每个卫星占3行:第一行是卫星名称,第二、第三行就是轨道元素。所以我们只需要找到包含STRaND-1的行,然后取它后面的两行就行。

代码示例(Python 3.6.4兼容):

import requests

# 获取TLE文本内容
url = "https://celestrak.org/NORAD/elements/cubesat.txt"
response = requests.get(url)
response.raise_for_status()  # 确保请求成功
tle_lines = response.text.splitlines()

# 寻找STRaND-1的轨道元素
strand1_tle = []
for idx, line in enumerate(tle_lines):
    if "STRaND-1" in line:
        # 取后面两行轨道元素(如果你需要包含名称行,可以改成tle_lines[idx:idx+3])
        strand1_tle = tle_lines[idx+1:idx+3]
        break

if strand1_tle:
    print("STRaND-1的轨道元素:")
    print(strand1_tle[0])
    print(strand1_tle[1])
else:
    print("未找到STRaND-1的轨道元素")

Xpath基本用法入门(针对HTML/XML场景)

既然你想学习xpath()命令,我给你举几个实用的例子,都是基于HTML文档的:

首先,假设我们有一段简单的HTML:

<html>
    <head>
        <title>测试页面</title>
    </head>
    <body>
        <div class="content">
            <p id="first">第一个段落</p>
            <p class="info">第二个段落,包含<a href="link.html">链接</a></p>
        </div>
    </body>
</html>

用lxml.html解析后,常用的xpath写法:

  • 提取页面标题:tree.xpath("//title/text()") —— //title匹配所有title节点,/text()取节点内的文本内容,返回列表['测试页面']
  • 提取id为first的p标签文本:tree.xpath("//p[@id='first']/text()") —— [@id='first']是属性筛选,返回['第一个段落']
  • 提取所有class为info的p标签里的链接文本:tree.xpath("//p[@class='info']/a/text()") —— 链式选择子节点,返回['链接']
  • 提取所有p标签的文本:tree.xpath("//p/text()") —— 返回['第一个段落', '第二个段落,包含'](注意链接文本是单独的子节点,所以不会包含在这里)
  • 提取链接的href属性值:tree.xpath("//a/@href") —— 返回['link.html']

简单总结xpath的核心逻辑:

  • // 表示从任意位置开始查找节点
  • / 表示从当前节点的直接子节点查找
  • [@属性名='属性值'] 用来筛选带有指定属性的节点
  • /text() 用来提取节点内的文本内容
  • /@属性名 用来提取节点的属性值

内容的提问来源于stack exchange,提问作者Lorcank11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:12:29