¿Cómo escribir una araña simple en Python?
-
05-07-2019 - |
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.
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).