来自使用lxml / requests的网页的TLE(Python3.6.4)

时间:2018-02-02 17:20:05

标签: python python-3.x python-requests lxml

我正在尝试从此link.读取TLE集 该链接来自Space-Track.org

我想读取链接并创建两个变量,这两个变量中的每一行都有一个变量。我做了一些搜索,并尝试重用此线程about reading a particular line from a web page in Python中的代码。但是,我不熟悉请求或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版本上运行,因此nn的范围(0,2)。

任何和所有帮助表示赞赏。

感谢。

1 个答案:

答案 0 :(得分:2)

错误信息非常清楚:

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)