在Python中删除空行

1 投票
2 回答
749 浏览
提问于 2025-04-17 10:19

我正在用Python 3从一个网站上提取信息(比如IP地址、位置等等)。

import urllib.request

data = urllib.request.urlopen('http://www.maxmind.com/app/locate_my_ip')
for search in data:
    if b'align="center">' in search:
        print(next(data).decode().rstrip())
data.close()

我该如何去掉空行,把信息放进元组里,或者保存成变量等等。我想开始使用收集到的数据。

2 个回答

3

如果你在做HTML的抓取或者解析,建议使用一个叫做BeautifulSoup的库。

用这个库会比手动去抓取简单多了。

2

正如@jordanm提到的,最好的选择是使用GeoIP Python API来完成这个任务。

不过,针对你的问题,你的代码可能应该像这样:

import urllib.request, pprint

data = urllib.request.urlopen('http://www.maxmind.com/app/locate_my_ip')

fields = []
for line in data:
    if b'class=output' in line:
        fields.append(next(data).decode('iso-8859-1').strip())
data.close()

注意,我已经更改了测试字符串,并且包含了空行。这是为了确保字段可以通过索引轻松识别。

要访问字段的值,你可以这样做:

address = fields[0]
isp = fields[8]
domain = fields[-1]

如果你想删除特定的字段:

del fields[3], fields[4], fields[6]

撰写回答