2012-01-16 132 views
3

在vim中,我將一系列網頁(一次一個)加載到vim緩衝區中(使用vim netrw插件),然後解析html(使用vim elinks插件)。都好。然後,我使用正則表達式編寫了一系列vim腳本,最終結果爲幾千行,每行都格式正確(csv),以便上傳到數據庫中。屏幕抓取:自動化vim腳本

爲了做到這一點,我不得不使用vim的標記功能,以便我可以遍歷文檔的特定點並將其重新組合爲一個csv行。現在,我正在考慮通過使用Perl的「機械化」類庫(UserAgent等)來實現自動化。

問題:

  1. 可以Vim的能力的文件爲「標記」部分(以 執行置換)在Perl來完成?
  2. 有人建議用「elinks」直接 - (?),我採取的意思是 加載的頁面變成無頭的瀏覽器使用ellinks並從那裏對內容執行的Perl 腳本
  3. 如果這是正確的,將當我將本地主機LAMP堆棧設置遷移到 像Bluehost這樣的託管公司時,出現了一個部署問題,其中包含 elinks?

感謝

編輯1:

TYRING。移民從知識VIM給Perl:

如果@flesk(下圖)是正確的,那麼我將如何去執行這一例程(用vim編寫)「標記」文本文件中的行(「i」和「j」),然後用它作爲範圍('i,'j)來執行最後兩次替換?

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

我在perldoc perlre手冊中沒有看到此功能。我是否缺少一個模塊或一些基本的Perl理解m /或qr/??

+0

根本沒有必要使用elinks。 Perl很容易完成你描述的所有事情,而且除了核心模塊外你不需要任何東西,所以你應該能夠將它遷移到任何支持Perl的主機上。 – flesk 2012-01-17 06:31:03

+0

這是從http://stackoverflow.com/questions/8852948/dynamic-scraping-and-parsing的後續行動 – daxim 2012-01-17 13:56:19

+0

如何將整個數據(在上述轉換之後)轉換爲單個CSV文件(可選地將不同部分通過一個特殊的行,例如空),然後加載它在Perl中進行操作? – 2012-02-15 11:32:34

回答