Pregunta

He estado intentando escribir esta araña durante semanas pero sin éxito. ¿Cuál es la mejor manera de codificar esto en Python?

1) URL inicial: http://www.whitecase.com/Attorneys/List.aspx?LastName=A

2) desde la URL inicial, seleccione estas URL con esta expresión regular:

hxs.select('//td[@class="altRow"][1]/a/@href').re('/.a\w+')

[u'/cabel', u'/jacevedo', u'/jacuna', u'/aadler', u'/zahmedani', u'/tairisto', u
/zalbert', u'/salberts', u'/aaleksandrova', u'/malhadeff', u'/nalivojvodic', u'
....

3) Ve a cada una de estas URL y raspa la información de la escuela con esta expresión regular

hxs.select('//td[@class="mainColumnTDa"]').re('(?<=(JD,\s))(.*?)(\d+)'

[u'JD, ', u'University of Florida Levin College of Law, <em>magna cum laude</em> , Order of the Coif, Symposium Editor, Florida Law Review, Awards for highest grades in Comparative Constitutional History, Legal Drafting, Real Property and Sales, ', u'2007']

4) Escriba la información de la escuela raspada en el archivo schools.csv

¿Me pueden ayudar a escribir esta araña en Python? He estado tratando de escribirlo en Scrapy pero sin éxito. Vea mi pregunta anterior.

Gracias.

¿Fue útil?

Solución

http://www.ibm.com/developerworks/linux/ biblioteca / l-spider / Artículo de IBM con buena descripción

o

http://code.activestate.com/recipes/576551/ libro de cocina Python , mejor código pero menos explicación

Otros consejos

Además, te sugiero que leas:

Etiquetas abiertas de coincidencia RegEx excepto XHTML self -contenidas etiquetas

Antes de intentar analizar HTML con una expresión regular. Luego, piense en lo que sucede la primera vez que el nombre de alguien obliga a la página a ser unicode en lugar de latin-1.

EDITAR: para responder a su pregunta sobre una biblioteca para usar en Python, sugeriría Beautiful Soup, que es un excelente analizador de HTML y es compatible con Unicode en todo momento (y hace un muy buen trabajo con HTML con formato incorrecto, que encontrará en todas partes).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top