牛骨文教育服务平台(让学习变的简单)
博文笔记

爬虫数据导成csv及存入数据库

创建时间:2016-12-11 投稿人: 浏览次数:2856

有时对于爬虫得到的数据,需要对其进行整理,一是为了格式统一,二是用excel表格也可以打开。再就是把得到的数据放入数据库都是需要的。

首先来看导成csv:

我认为最重要的一点是,如何把文本数据取出来放入类似二维数组的字符串组来保存。关键就在于如何取。


可以观察到这些数据以此的顺序,因此:

        with open("info.txt","r") as file:
            while True:
                line=file.readline()
                if line=="":
                    break
                if len(line.split("
")[0])==1:
                    continue
                print len(line.split("
")[0])
                info.append(line.split("
")[0])
        #         /r 和 /n 的区别?
        count=0
        for i in info:
            print "测试",i
            count=count+1
            print "数量",count
        data=[("1","2","3","4")]

        for i in range(0,count,4):
            str=(info[i],info[i+1],info[i+2],info[i+3])
            data.append(str)
定义一个info=[]的列表,先来以此存放这些数据,用了split函数来从换行符进行分割。看到这些数据之间有两个空行没?在从print测试后发现这些行除去行符的len都为1,所以用if来判断。然后看到data,这是一个字符串集的列表,每次添加的为一个字符串集,()专业术语:元组。

这样我就实现了把爬虫得到的数据整理好了,之后至于写成csv,那就简单,无非就是csv的专用功能:

        with open("infos.csv","w") as cwf:
            spamwriter=csv.writer(cwf,dialect="excel")
            for i in range((count/4)+1):
                spamwriter.writerow(data[i])
关于csv,请看官方文档。这样,就可以实现导成csv格式:


如果用excel打开,可能有出现乱码等问题,网上说是把csv用记事本打开,另存为,编码改为ANSI,再用excel打开就无乱码了。



接着,把以上数据放入数据库,我这里使用的是postgres数据库,图形界面操作用的pgadmin

import psycopg2

conn = psycopg2.connect(database="hecarim", user="XXXXXX", password="XXXXXXXX", host="192.168.XXX.XXX",
                            port="5432")
cur=conn.cursor()
cur.execute("INSERT INTO workinfo (days,times,company,palce) VALUES (%s,%s,%s,%s)",(info[i],info[i+1],info[i+2],info[i+3]))
conn.commit()
conn.close()
python在这里面其实进行数据库的连接和使用还是蛮简单的,导入psycopg2,然后就connect,最后,execute来进行功能的实现。

这种方式是简单易懂的,数据库表是在pgadmin里面创建的。

所以我还想进一步会写的是,在python里面创建表,然后用

info=InfoModel(XXX=XXX,yyy=yyy)

info.add()

上面这种方式来添加到数据库。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。