2011-08-14 15 views
7

orientada en la página web: http://www.immi.gov.au/skilled/general-skilled-migration/estimated-allocation-times.htm¿Cómo extraer ciertas partes de una página web en Python

La sección quiero extraer:

<tr> 
    <td>Skilled &ndash; Independent (Residence) subclass 885<br />online</td> 
    <td>N/A</td> 
    <td>N/A</td> 
    <td>N/A</td> 
    <td>15 May 2011</td> 
    <td>N/A</td> 
    </tr> 

vez que el código se encuentra esta sección mediante la búsqueda de la palabra clave "subclase 885
en línea
", debe imprimir la fecha que está dentro de la 5ta etiqueta que es" 15 de mayo de 2011 "como se muestra arriba.

Es solo un monitor para mí el controlar el progreso de mi solicitud de inmigración.

+0

look BeautifulSoup –

Respuesta

6

"Beau--ootiful Soo--oop!

Beau--ootiful Soo--oop!

Soo - oop del e - e - noche,

Beautiful, beauti--FUL SOUP! "

--Lewis Carroll, Alice's Adventures in Wonderland

creo que esto es exactamente lo que tenía en mente!

La Falsa Tortuga probablemente hacer algo como esto:

>>> from BeautifulSoup import BeautifulSoup 
>>> import urllib2 
>>> url = 'http://www.immi.gov.au/skilled/general-skilled-migration/estimated-allocation-times.htm' 
>>> page = urllib2.urlopen(url) 
>>> soup = BeautifulSoup(page) 
>>> for row in soup.html.body.findAll('tr'): 
...  data = row.findAll('td') 
...  if data and 'subclass 885online' in data[0].text: 
...   print data[4].text 
... 
15 May 2011 

Pero no estoy seguro de que ayudaría, desde esa fecha ya ha pasado!

¡Buena suerte con la aplicación!

+1

Gracias por el código y siempre me pregunté qué significa BSoup .... – jiaoziren

6

Es posible que desee utilizar esto como un punto de partida:

Python 2.6.7 (r267:88850, Jun 13 2011, 22:03:32) 
[GCC 4.6.1 20110608 (prerelease)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import urllib2, re 
>>> from BeautifulSoup import BeautifulSoup 
>>> urllib2.urlopen('http://www.immi.gov.au/skilled/general-skilled-migration/estimated-allocation-times.htm') 
<addinfourl at 139158380 whose fp = <socket._fileobject object at 0x84aa2ac>> 
>>> html = _.read() 
>>> soup = BeautifulSoup(html) 
>>> soup.find(text = re.compile('\\bsubclass 885\\b')).parent.parent.find('td', text = re.compile(' [0-9]{4}$')) 
u'15 May 2011' 
+0

Principiante aquí, pero por lo que he leído, el módulo preferido para raspar la pantalla en lxml. ¿Es solo cuestión de preferencia o ofrece alguna ventaja significativa? Además, estás fuera de tu proporción de 30 a 1. – danem

+0

Hola, Pete, no he usado lxml, tendré que investigarlo. Y tienes razón, me voy, pero en la dirección correcta: ^) –

+0

Ah, pensé que querías alejarte en la otra dirección. ¿Qué pasa con hacer preguntas? D: – danem

Cuestiones relacionadas