Соскоб экрана: автоматизация скрипта vim - PullRequest
3 голосов
/ 17 января 2012

В vim я загрузил серию веб-страниц (по одной за раз) в буфер vim (используя плагин vim netrw), а затем проанализировал html (используя плагин vim elinks).Все хорошо.Затем я написал серию сценариев vim с использованием регулярных выражений с конечным результатом в несколько тысяч строк, где каждая строка была правильно отформатирована (csv) для загрузки в базу данных.

Чтобы сделать это, мне пришлось использовать функцию маркировки vim, чтобы можно было зацикливаться на определенных точках документа и снова собирать его вместе в одну строку CSV.Теперь я рассматриваю вопрос об автоматизации этого с помощью библиотеки классов Perl "Mechanize" (UserAgent и т. Д.).

Вопросы:

  1. Может ли vim "пометить "разделы документа (для выполнения подстановок) в Perl?
  2. Было предложено использовать" elinks "напрямую - что я имею в виду, чтобы загрузить страницу в безголовый браузер, используя ellinksи выполнить сценарии Perl для содержимого оттуда (?)
  3. Если это правильно, станет ли проблема с развертыванием elinks, когда я перенесу сайт из локальной конфигурации стека LAMP в хостинговую компанию, такую ​​как Bluehost?

Спасибо

Редактировать 1:

ШИРОК ДЛЯ МИГРАЦИИ ЗНАНИЙ ИЗ VIM В PERL:

Если @flesk (ниже)Правильно, тогда как мне выполнить эту подпрограмму (написанную в vim), которая «помечает» строки в текстовом файле («i» и «j»), а затем использует это как диапазон ('i,' j) длявыполнить две последние замены?

:g/^\s*\h/d|let@"=substitute(@"[:-2],'\s\+and\s\+',',','')|ki|/\n\s*\h\|\%$/kj|
\   'i,'js/^\s*\(\d\+\)\s\+-\s\+The/\=@".','.submatch(1).','/|'i,'js/\s\+//g

Я не вижу этой возможности в руководстве perldoc perlre.Я скучаю по модулю или некоторому базовому Perl-пониманию m / или qr / ??

1 Ответ

0 голосов
/ 17 января 2012

Я уверен, что все, что вам нужно, это какой-то HTML-парсер . Например я использую HTML :: TreeBuilder :: XPath .

...