使用beautifulsoup从网站打印到密钥对的python

时间:2013-07-15 07:31:59

标签: python pretty-print

我使用本网站https://api.projectnimbus.org/neaodataservice.svc/NowcastSet中的beautifulsoup提取此代码?

显示所有位置后,如何将其打印到密钥对值?喜欢位置:Ang Mo Kio 纬度:1.3546846 经度:103.564132?

from BeautifulSoup import BeautifulStoneSoup #Using bs3
import urllib2

url="https://api.projectnimbus.org/neaodataservice.svc/NowcastSet"
request = urllib2.Request(url)
request.add_header("accept", "*/*")
request.add_header('AccountKey', "OSJeROQjTg4v7Ec3kiecjw==")
request.add_header('UniqueUserID', "00000000000000000000000000000001")
result = urllib2.urlopen(request)
xml_str = result.read()

soup = BeautifulStoneSoup(xml_str)

prop_list = []
for content in soup.findAll("m:properties"):
    props = {}
    for prop in content.findChildren():
        props[prop.name[2:]] = prop.text
    prop_list.append(props)

print prop_list

2 个答案:

答案 0 :(得分:0)

soup.find仅返回第一个匹配项,因此您需要soup.findAll。至于漂亮的印刷品,您可以使用pprint

答案 1 :(得分:0)

修改:

import urllib2
from BeautifulSoup import BeautifulStoneSoup #Using bs3

url="https://api.projectnimbus.org/neaodataservice.svc/NowcastSet"
request = urllib2.Request(url)
request.add_header("accept", "*/*")
request.add_header('AccountKey', "OSJeROQjTg4v7Ec3kiecjw==")
request.add_header('UniqueUserID', "00000000000000000000000000000001")
result = urllib2.urlopen(request)
xml_str = result.read()

soup = BeautifulStoneSoup(xml_str)

prop_list = []
for content in soup.findAll("m:properties"):
    props = {}
    for prop in content.findChildren():
        props[prop.name[2:]] = prop.text
    prop_list.append(props)

for prop in prop_list:
    print "Area: %(area)s\nLat: %(latitude)s\nLong: %(longitude)s\n" % prop