Python Beautifulsoup извлекает XML, а не HTML-страницу, в которой он находится - PullRequest
0 голосов
/ 16 сентября 2011

Я использую

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 голосов
/ 24 сентября 2011

Вы пытались поиграть с заголовками и запросить XML?

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

Выполните вход в Chrome и используйте Инструменты разработчика, в частности средство просмотра сети, чтобы увидеть, что происходит в вашем браузере, а затем попытайтесь скопировать его через urllib2

...