2012-01-16 92 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

回答