2009-10-30 5 views
0

A exam.com est pas le temps:Comment utiliser lxml pour recevoir un message d'un site web?

Tokyo: 25°C 

Je veux utiliser Django 1.1 et lxml pour obtenir des informations sur le site Web. Je veux obtenir des informations de "25" seulement. Structure

HTML exam.com comme suit:

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

Je suis un étudiant. Je fais un petit projet avec mes amis. S'il vous plaît expliquer à moi facilement comprendre. Merci beaucoup! BeautifulSoup est plus approprié pour l'analyse html que lxml.

Répondre

4

quelque chose comme cela peut être utile:

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 

contenu de la page get avec urllib, parse avec BeautifulSoup, trouver P avec id = resultWeather, trouver la dernière B dans notre P et obtenir son contenu

+0

Merci . Je sais déjà comment le faire. Cependant, toujours un problème. Je veux obtenir le 2ème "b", plutôt que le dernier. Paramètres pour faire cela? – anhtran

+0

Bien? Je ne sais pas exactement comment cela fonctionne, mais à partir de la dernière ligne, il est évident que vous devriez fournir un index de liste différent. – shylent

+0

Essayez d'utiliser '.findAll ('b') [1]' au lieu de '.findAll ('b') [- 1]'. –

Questions connexes