python beautifulsoup fetch xml,而不是它所在的html页面

时间:2011-09-15 20:15:01

标签: python beautifulsoup urllib2

我正在使用

import urllib2
from BeautifulSoup import BeautifulStoneSoup
xml = urllib2.urlopen('http://weatherlink.com/xml.php?user=blah&pass=blah')
soup = BeautifulStoneSoup(xml)
print soup.prettify()

但这只是抓住了HTML。如果我卷曲它,我会得到类似的东西:

...
<title>blah</title>
<link>http://www.blah.com</link>
</image>
<suggested_pickup>15 minutes after the hour</suggested_pickup>
<dewpoint_c>16.7</dewpoint_c>
<dewpoint_f>62</dewpoint_f>
<heat_index_f>77</heat_index_f>
...

我该怎么做:

some_data {}
some_data [ 'dewpoint_c' ] = 16.7
some_data [ 'heat_index' ] = 77

其中some_data将具有它应该得到的xml的值。我也尝试了minidom和ElementTree,但是首先获取xml时出现同样的问题

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用标头并请求XML?

headers = {
    "Accept":"application/xml;q=0.9,"
}
xml = urllib2.urlopen('http://weatherlink.com/xml.php?user=blah&pass=blah', headers=headers)

在Chrome中执行登录并使用开发人员工具,尤其是网络查看器,查看浏览器中发生的情况,然后尝试通过urllib2进行复制