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

来源:互联网 发布:时时彩源码免费下载 编辑:程序博客网 时间:2024/04/30 21:34

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

首先来看导成csv:

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


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

        with open('info.txt','r') as file:            while True:                line=file.readline()                if line=='':                    break                if len(line.split('\r')[0])==1:                    continue                print len(line.split('\n')[0])                info.append(line.split('\n')[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 psycopg2conn = 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()

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

0 0
原创粉丝点击