【问题标题】:How to Scrape Text (not HTML) Table如何抓取文本(不是 HTML)表格
【发布时间】:2018-04-10 03:26:35
【问题描述】:

我需要抓取一个与空格对齐的数据表。这不是一个 HTML 表格,但我很难让它正确。表格如下:

2017-10-28 @Westmont                100  Cal Lutheran             76           
2017-10-30 @Arizona Chr              94  E New Mexico             87           
2017-10-31 @Walsh                    91  Mt Union                 80           
2017-10-31 @Card Stritch             71  Maranatha Bap            42           
2017-11-01 @WV Tech                  82  Glenville St             80           
...
2018-03-31  Villanova                95  Kansas                   79 P        NCAA Tournament San Antonio, TX
2018-03-31  Michigan                 69  Loyola-Chicago           57 P        NCAA Tournament San Antonio, TX
2018-04-02  Villanova                79  Michigan                 62 P        NCAA I Championship San Antonio, TX

因为是纯文本,所以我将它粘贴到一个文本文档中并使用read.table,但我几乎丢失了一半的行,我不知道为什么。我想出了如何从输入的行中提取我想要的数据,所以我正在寻找两种解决方案中的任何一种:

  • 一种简单的方法来抓取如下所示的表 (link to actual data),并将其放入数据帧(或 csv)中。
  • 一种获取所有数据行的方法/我丢失大量数据的原因(我得到了 16445 行中的 8861 行)

【问题讨论】:

    标签: r datatable scrape


    【解决方案1】:

    这是一个可以完成这项工作的 python 脚本。基本上你可以使用你最喜欢的编程语言和一些简单的正则表达式技巧来做到这一点。

    import re
    
    with open('data.txt', 'r') as inputFile:
        with open ('cleanedUp.csv', 'w') as outputFile:
            regex = re.compile("\s\s+|\s@")
            for line in inputFile:
                cleanedUp = regex.split(line.strip())
                outputFile.write(','.join(cleanedUp) + '\n')
    

    【讨论】:

    • 不好意思说,不过我还没学过python。如果您能给我一些有关如何使用它的基本说明,我将不胜感激。
    • 不用尴尬。您使用的是什么操作系统?
    • 视窗。感谢您的帮助。
    • 1) 安装 python 2) 创建一个新文件并将其命名为 cleaner.py 3) 将这个脚本粘贴到那里 4) 使用 cmd 命令'python cleaner.py' 运行文件
    • 看看我之前的评论。我之前提交了它,但没有完成。我还更新了脚本,以便它从文件中读取输入。
    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2020-10-15
    • 2020-11-08
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多