2009-11-26 3 views
1

Я пытался написать этот паук неделями, но безуспешно. Что это лучший способ для меня, чтобы закодировать это в Python:Как написать простой паук в Python?

1) Начальный URL: http://www.whitecase.com/Attorneys/List.aspx?LastName=A

2) из ​​исходного URL забрать эти адреса с этим регулярным выражением:

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) Перейти к каждому из этих URL-адресов и очистить информацию о школе с помощью этого регулярного выражения

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) Написать Царапины Информация о школе в schools.csv файл

Можете ли вы помочь мне написать этот паук в Python? Я пытался написать его в Scrapy, но безуспешно. См. Мои предыдущие question.

спасибо.

ответ

0

Кроме того, я предлагаю вам прочитать:

RegEx match open tags except XHTML self-contained tags

Перед вами попробуйте проанализировать HTML с регулярным выражением. Затем подумайте о том, что происходит в первый раз, когда чье-то имя заставляет страницу быть unicode вместо latin-1.

EDIT: Чтобы ответить на вопрос о библиотеке, используемой в Python, я бы предложил Beautiful Soup,, который является отличным парсером HTML и поддерживает unicode во всем (и делает действительно хорошую работу с искаженным HTML, который вы собираетесь найти повсюду).

+0

Ok. Можете ли вы сообщить мне конкретный инструмент, отличный от того, что я использую, для Python, чтобы извлечь URL-адреса, '/ aabbas', '/ rwagner', '/ cabel' и т. Д. Из этого URL-адреса http: // www .whitecase.com/Attorneys/List.aspx? LastName = A – Zeynel

+0

Кроме того, проблема, с которой я столкнулась, состоит в том, чтобы передать функции parse строку, извлеченную регулярным выражением, как я спросил здесь http://stackoverflow.com/questions/1805050/scrapy-spider-index-error Фактически единственной частью кода, который работает, является regex :) – Zeynel

+0

Спасибо. Раньше я смотрел BeautifulSoup, но у меня проблемы с пониманием их учебника. Например, как бы вы перевели это: hxs.select ('// td [@ class = "mainColumnTDa"]'). Re ('(? <= (JD, \ s)) (. *?) (\ D +) ') в BeautifulSoup? – Zeynel

 Смежные вопросы

  • Нет связанных вопросов^_^