美文网首页
【爬虫】(五)数据存储之CSV

【爬虫】(五)数据存储之CSV

作者: 朴有天虹 | 来源:发表于2017-06-06 15:43 被阅读0次

    date: 2017-02-14 17:05:03

    一个完整的(大)数据处理可以分为这几个阶段:

    • 数据收集
    • 数据存储
    • 数据建模
    • 数据分析
    • 数据变现。

    Holi的项目进度,已经从入门到处理了。

    第一步的数据收集基本已经完成。

    现在是第二步的数据存储。

    讲道理,不懂点前端知识还真不好下手。

    看到一堆标签也是很烦的,还好这些东西就想剥洋葱一样,一层一层剥开。

    配合上《爱丽丝梦游仙境》的BeautifulSoup,就方便多了。

    CSV( Comma-Separated Values,逗号分隔值)是存储表格数据的常用文件格式。

    Microsoft Excel 和很多应用都支持 CSV 格式,因为它很简洁。

    Python 的 csv 库可以非常简单地修改 CSV 文件,甚至从零开始创建一个 CSV 文件:

    import csv  
    
    csvFile = open("../files/test.csv", 'w+')
    try:
        writer = csv.writer(csvFile)
        writer.writerow(('number', 'number plus 2', 'number times 2'))
        for i in range(10):
            writer.writerow( (i, i+2, i*2))
    finally:
        csvFile.close()
    

    这种方案来处理教务处的数据,就很方便。

    这里拿处理课表的来说。

    解析课表的网页源码会看到有一个table的标签,这个很重要。

    <table id="tableObj" width="99%" border="0" cellspacing="0" cellpadding="0" class="arranging_arrange">
    

    确定了table和class,就看开始剥洋葱了。

    import csv
    from urllib.request import urlopen
    from bs4 import BeautifulSoup
    html = urlopen("课表url")
    bsObj = BeautifulSoup(html)
    # 看网页源码的class
    table = bsObj.findAll("table",{"class":"arranging_arrange"})[0] 
    
    #剥第一层洋葱
    rows = table.findAll("tr")
    #存储CSV
    csvFile = open("../files/editors.csv", 'wt', newline='', encoding='utf-8')
    writer = csv.writer(csvFile)
    
    try:
        for row in rows:
            csvRow = []
            #继续一层层剥洋葱
            for cell in row.findAll(['td', 'th']):
                csvRow.append(cell.get_text())
            writer.writerow(csvRow)
    finally:
        csvFile.close()
    

    这样就可以得到存储在当前目录的CSV文件了。

    用Notepad++打开可以看,用excel打开会乱码。

    虐狗节,撸代码,还有谁。

    哈哈哈哈。

    相关文章

      网友评论

          本文标题:【爬虫】(五)数据存储之CSV

          本文链接:https://www.haomeiwen.com/subject/wkzgfxtx.html