使用 lxml/requests 从网页进行 TLE (Python3.6.4)

TLE from web page using lxml/requests (Python3.6.4)

我正在尝试从中读取 TLE 集 link. link 来自 Space-Track.org

我想阅读 link 并创建两个变量,这样做时两个行元素的每一行一个。我进行了一些搜索,并试图重用该线程 中的代码。但是,我对请求或 lxml 都不熟悉。我尝试了 运行 下面的代码:

<import numpy as np
from lxml import html
import requests

for nn in range(0,2):
    page = requests.get("https://www.space-track.org/basicspacedata/query/class/tle_latest/ORDINAL/1/NORAD_CAT_ID/39090/orderby/TLE_LINE1%20ASC/format/tleid=%" % nn)
    tree = html.fromstring(page.text)
    print (tree.xpath("//b/text()")[0])
>

并得到以下回溯错误:

<Traceback (most recent call last):
  File "C:\Python36-64\Projects\HTMLTLEREADER.py", line 19, in <module>
    page = requests.get("https://www.space-track.org/basicspacedata/query/class/tle_latest/ORDINAL/1/NORAD_CAT_ID/39090/orderby/TLE_LINE1%20ASC/format/tleid=%" % nn)
ValueError: unsupported format character 'A' (0x41) at index 115
>

我最初试图阅读这两行以检查代码 运行 是否在我的 python 版本上,因此 运行ge(0,2) for nn.

感谢任何帮助。

谢谢。

错误信息很清楚:

ValueError: unsupported format character 'A' (0x41) at index 115

您的字符串的索引 115 在这里:

"...NORAD_CAT_ID/39090/orderby/TLE_LINE1%20ASC/format/tleid=%" % nn
                                           ↑

您正在使用百分号格式,但您的字符串已包含 URL 中不相关百分号编码的百分号。您可以双重转义现有的百分号并修复最后的格式字符串:

"...NORAD_CAT_ID/39090/orderby/TLE_LINE1%%20ASC/format/tleid=%s" % nn
                                         ↑                    ↑

或者只是连接字符串:

"...NORAD_CAT_ID/39090/orderby/TLE_LINE1%20ASC/format/tleid=" + str(nn)