2009-10-30 2 views
0

В exam.com не о погоде:Как использовать lxml для получения сообщения с веб-сайта?

Tokyo: 25°C 

Я хочу использовать Django 1.1 и LXML, чтобы получить информацию на сайте. Я хочу получить информацию только о «25».

HTML exam.com структура выглядит следующим образом:

<p id="resultWeather"> 
    <b>Weather</b> 
    Tokyo: 
    <b>25</b>°C 
</p> 

Я студент. Я делаю небольшой проект с друзьями. Пожалуйста, объясните мне, что легко понять. Большое спасибо!

ответ

4

BeautifulSoup больше подходит для синтаксического анализа html, чем lxml.

что-то, как это может быть полезно:

def get_weather(): 
    import urllib 
    from BeautifulSoup import BeautifulSoup 
    data = urllib.urlopen('http://exam.com/').read() 
    soup = BeautifulSoup(data) 
    return soup.find('p', {'id': 'resultWeather'}).findAll('b')[-1].string 

получить страницу содержимого с URLLIB, разобрать его с BeautifulSoup, найти P с идентификатором = resultWeather, найти последний B в нашей P и получить его содержание

+0

Спасибо , Я уже знаю, как это сделать. Однако все еще проблема. Я хочу получить второй «b», а не последний. Параметры для этого? – anhtran

+0

Ну? Я не знаю, как это работает, но из последней строки очевидно, что вы должны указать другой индекс списка. – shylent

+0

Попробуйте использовать '.findAll ('b') [1]' вместо '.findAll ('b') [- 1]'. –

Смежные вопросы