Como escrever uma aranha simples em Python?
-
05-07-2019 - |
Pergunta
Eu tenho tentado a escrever esta aranha por semanas, mas sem sucesso. Qual é a melhor maneira para mim este código em Python:
1) url inicial: http://www.whitecase.com/Attorneys/List.aspx?LastName=A
2) a partir de url inicial pegar esses URLs com este 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) Vá para cada uma dessas URLs e raspar a informação da escola com esta 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) Escrever a informação escolar raspados para arquivo schools.csv
Você pode me ajudar a escrever esta aranha em Python? Eu tenho tentado escrevê-lo em Scrapy mas sem sucesso. Ver o meu anterior questão .
Obrigado.
Solução
http://www.ibm.com/developerworks/linux/ biblioteca / l-aranha artigo / IBM com boa descrição
ou
http://code.activestate.com/recipes/576551/ Python livro de receitas , um código melhor, mas menos explicação
Outras dicas
Além disso, eu sugiro que você leia-se:
RegEx coincidir com as tags abertas, exceto XHTML auto -contained etiquetas
Antes de tentar analisar HTML com uma expressão regular. Então, pense sobre o que acontece nome forças pela primeira vez de alguém da página para ser Unicode em vez de Latin-1.
EDIT: Para responder à sua pergunta sobre uma biblioteca para uso em Python, gostaria de sugerir bonito Sopa, que é uma grande analisador HTML e suporte a unicode em todo (e faz um trabalho realmente bom com HTML mal formado, o que você vai encontrar todo o lugar).