V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shrugged
V2EX  ›  问与答

请教一个问题:如何爬取多个网页上的表格。

  •  
  •   shrugged · 2018-01-10 00:35:19 +08:00 · 2671 次点击
    这是一个创建于 2508 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目标:

    爬取「中国质量新闻网」上多个网页内的抽查报告,保存本地为 Excel 文件,然后汇总、整理。

    比较坑的是,不同地方的机构、不同年份发布的抽查报告的样式略有不同。我不会编程,只有找现成的工具,于是想了几个方案:

    方案一:

    用爬取工具为不同排列方式的抽查报告建立不同的规则,缺点是可能要建很多规则,工作量可能比较大。

    方案二:

    用爬取工具建一个能够爬取大多数抽查报告所有内容的规则,全部 URL 放进去运行,最后在 EXCEL 里面整理。

    方案三

    用爬取工具自动识别并抓取网页上的表格,然后合并处理。

    结果:

    import.io:经常漏抓前面几行,而且没有规律可循。

    八爪鱼:不少表格抓取不全,某些类型的「数据」无法正常生成字段,有的一列被分为多列。

    爬山虎:不少表格抓取不全,有的一列被分为多列。

    Excel 的「自网站」功能:不能批量添加。

    Google 表格:还未尝试,不知道有没有批量操作的插件。

    所以请教一下各位,还有啥办法,或者说要学习什么工具 /方法? XPath ?

    例如抓取这些链接内的表格:

    https://shimo.im/docs/MB8YWzJ6WjY2eRWf/

    5 条回复    2018-01-10 15:50:43 +08:00
    songz
        1
    songz  
       2018-01-10 01:00:18 +08:00
    批量抓<table>的內容,然後粘貼到 excel,完美
    POPOEVER
        2
    POPOEVER  
       2018-01-10 01:05:42 +08:00
    我都是 js 脚本直接 curl 网页过滤 table 出来,如果要 fs 权限的话用 electron 打包一下从 node 走就有权限了
    bazingaterry
        3
    bazingaterry  
       2018-01-10 02:34:59 +08:00 via iPhone
    想要自動識別不同網頁的表格還自動提取字段感覺有難度的,建議不同網頁自己寫一套規則,學一下 css selector 就可以做到了。
    exp1ore
        4
    exp1ore  
       2018-01-10 10:39:50 +08:00
    神箭手试试看
    shrugged
        5
    shrugged  
    OP
       2018-01-10 15:50:43 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2805 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:58 · PVG 21:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.