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

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

  •  
  •   cstome Mar 17, 2017 2686 views
    This topic created in 3344 days ago, the information mentioned may be changed or developed.

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

    1. 去除特定字符串,

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

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

    ...暂时想到这些。

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

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

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

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

    记住如果你的输入不是高度同质且确定的,比如不是同一个网址 pid 不同,而是那种真爬虫随意爬的,那么就别用基于 regex 的方式去搞,因为 html 不是正则语言, regex 处理不了各种边际情况,尽量用基于 xml 解析的库去做。
    misaka19000
        18
    misaka19000  
       Mar 17, 2017 via Android
    不用 Python 天理不容
    exoticknight
        19
    exoticknight  
       Mar 17, 2017
    python 和 node 都用过
    python
    binux
        20
    binux  
       Mar 17, 2017
    jsdom
    klesh
        21
    klesh  
       Mar 17, 2017 via Android
    1 ,你的需求 node 能更好地解决
    2 ,你更熟悉 node
    jiangzhuo
        22
    jiangzhuo  
       Mar 17, 2017
    node 库没 py 多是怎么回事
    About     Help     Advertise nbsp;   Blog     API     FAQ     Solana     4415 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 94ms UTC 05:30 PVG 13:30 LAX 22:30 JFK 01:30
    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