2009-11-26 3 views
1

J'ai essayé d'écrire cette araignée pendant des semaines mais sans succès. Quelle est la meilleure façon pour moi de coder ce en Python:Comment écrire une araignée simple en Python?

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

2) depuis l'URL initiale ramasser ces urls avec ce 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) Allez à chacune de ces URL et grattez les informations de l'école avec cette 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) Ecrire l'info école gratté dans le fichier schools.csv

Pouvez-vous me aider à écrire cette araignée en Python? J'ai essayé de l'écrire dans Scrapy mais sans succès. Voir mon précédent question.

Merci.

Répondre

0

Aussi, je vous suggère de lire:

RegEx match open tags except XHTML self-contained tags

Avant essayez d'analyser HTML avec une expression régulière. Puis pensez à ce qui se passe la première fois que le nom de quelqu'un force la page à être unicode au lieu de latin-1.

EDIT: Pour répondre à votre question sur une bibliothèque à utiliser en Python, je suggérerais Beautiful Soup, qui est un excellent analyseur HTML et supporte unicode partout (et fait un très bon travail avec HTML malformé, que vous allez trouver partout).

+0

Ok. Pouvez-vous me faire savoir un outil spécifique, autre que ce que j'utilise, pour Python, pour extraire les urls, '/ aabbas', '/ rwagner', '/ cabel' et ainsi de suite, de cette url http: // www .whitecase.com/Attorneys/List.aspx? LastName = A – Zeynel

+0

Aussi, le problème que j'ai est de passer à la fonction d'analyse la chaîne extraite par la regex, comme je l'ai demandé ici http://stackoverflow.com/questions/1805050/scrapy-spider-index-error En fait, la seule partie du code qui fonctionne est la regex :) – Zeynel

+0

Merci. Je regardais BeautifulSoup avant, mais j'ai de la difficulté à comprendre leur tutoriel. Par exemple, comment traduiriez-vous ceci: hxs.select ('// td [@ class = "mainColumnTDa"]'). Re ('(? <= (JD, \ s)) (. *?) (\ D +) ') à BeautifulSoup? – Zeynel

Questions connexes