Domanda

Ho provato a scrivere questo ragno per settimane ma senza successo. Qual è il modo migliore per codificarlo in Python:

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

2) dall'URL iniziale prendi questi URL con questa regex:

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) Vai a ciascuno di questi URL e raschia le informazioni sulla scuola con questa regex

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) Scrivi le informazioni di scuola scaricate nel file Schools.csv

Puoi aiutarmi a scrivere questo ragno in Python? Ho provato a scriverlo in Scrapy ma senza successo. Vedi la mia precedente domanda .

Grazie.

È stato utile?

Soluzione

http://www.ibm.com/developerworks/linux/ libreria / l-spider / articolo IBM con una buona descrizione

o

http://code.activestate.com/recipes/576551/ Ricettario Python , codice migliore ma meno spiegazione

Altri suggerimenti

Inoltre, ti consiglio di leggere:

RegEx corrisponde a tag aperti tranne XHTML self con tag contenuti

Prima di provare ad analizzare HTML con un'espressione regolare. Quindi pensa a cosa succede la prima volta che il nome di qualcuno impone che la pagina sia unicode anziché latin-1.

EDIT: per rispondere alla tua domanda su una libreria da utilizzare in Python, suggerirei Beautiful Soup, che è un ottimo parser HTML e supporta unicode dappertutto (e fa davvero un buon lavoro con HTML non valido, che troverai ovunque).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top