写一个文件(主要是 HTML)批量处理脚本,用什么语言比较好? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cstome
V2EX    问与答

写一个文件(主要是 HTML)批量处理脚本,用什么语言比较好?

  •  
  •   cstome 2017-03-17 16:49:22 +08:00 2460 次点击
    这是一个创建于 3135 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近想写个文件处理脚本,主要面向 HTML 文件,有一下需求:

    1. 去除特定字符串,

    2. 匹配替换特定字符串,

    3. 匹配 HTML 头部<head>标签内相同的地方,并抽取出来,

    ...暂时想到这些。

    不知道用 Python 写比较好还是 NodeJS 比较好。由于我是做前端的,对 JS 比较熟,但是 NodeJS 的库似乎没有 Python 多。。。

    或者大家知道有我这种需求的相关的库也可以推荐一下。

    第 1 条附言    2017-03-17 17:29:47 +08:00
    其实后面可能还要涉及到一些比对、判断,并不是简单匹配和替换(虽然我现在也想不出哪些具体需求),所以才提这个问题。
    22 条回复    2017-03-17 22:15:32 +08:00
    newbieo0O
        1
    newbieo0O  
       2017-03-17 16:56:14 +08:00
    Python. so easy
    imn1
        2
    imn1  
       2017-03-17 16:57:22 +08:00
    如果不需要并行的话, shell 就足够了
    sensui7
        3
    sensui7  
       2017-03-17 17:02:09 +08:00
    Perl
    cstome
        4
    cstome  
    OP
       2017-03-17 17:05:13 +08:00
    可能还会要一些 DOM 操作,由于分析判断如何处理。
    learnshare
        5
    learnshare  
       2017-03-17 17:06:45 +08:00
    Node + Phantom
    Tink
        6
    Tink  
    PRO
       2017-03-17 17:07:05 +08:00
    python
    xycool
        7
    xycool  
       2017-03-17 17:09:18 +08:00
    为什么感觉用 c#很简答啊,[认真脸]
    SuperMild
        8
    SuperMild  
       2017-03-17 17:22:26 +08:00
    这些简单功能不用库又何妨
    pandacat
        9
    pandacat  
       2017-03-17 17:28:06 +08:00 via Android
    sed ?
    scnace
        10
    scnace  
       2017-03-17 17:37:07 +08:00 via Android
    楼上别争了 这是个#熟悉什么语言就用什么语言#的 case
    dishonest
        11
    dishonest  
       2017-03-17 18:07:33 +08:00
    @scnace +1

    当然我还是推荐用 python
    golmic
        12
    golmic  
       2017-03-17 18:21:17 +08:00 via Android
    python
    jimliang
        13
    jimliang  
       2017-03-17 18:27:32 +08:00
    用你最熟悉最上手的语言就行了,怎么方便怎么来
    airyland
        14
    airyland  
       2017-03-17 18:43:13 +08:00 via iPhone
    这好像不需要库吧,上 js 咯。
    hd7771
        15
    hd7771  
       2017-03-17 19:28:42 +08:00 via Android
    有个算法叫 ac 自动机满足你的要求
    bdbai
        16
    bdbai  
       2017-03-17 20:02:49 +08:00 via Android   1
    Nodejs 有个库 cheerio 类似 jQuery 可以快速处理 DOM ,强烈推荐。
    Daniel65536
        17
    Daniel65536  
       2017-03-17 20:41:22 +08:00 via iPhone   2
    如果熟悉 js ,就用 js ,否则用 python+lxml

    记住如果你的输入不是高度同质且确定的,比如不是同一个网址 pid 不同,而是那种真爬虫随意爬的,那么就别用基于 regex 的方式去搞,因为 html 不是正则语言, regex 处理不了各种边际情况,尽量用基于 xml 解析的库去做。
    misaka19000
        18
    misaka19000  
       2017-03-17 20:48:35 +08:00 via Android
    不用 Python 天理不容
    exoticknight
        19
    exoticknight  
       2017-03-17 21:22:47 +08:00
    python 和 node 都用过
    python
    binux
        20
    binux  
       2017-03-17 21:27:29 +08:00
    jsdom
    klesh
        21
    klesh  
       2017-03-17 21:58:06 +08:00 via Android
    1 ,你的需求 node 能更好地解决
    2 ,你更熟悉 node
    jiangzhuo
        22
    jiangzhuo  
       2017-03-17 22:15:32 +08:00
    node 库没 py 多是怎么回事
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2775 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 14:24 PVG 22:24 LAX 07:24 JFK 10:24
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86