在Python中删除空行
我正在用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]