爬虫数据导成csv及存入数据库
有时对于爬虫得到的数据,需要对其进行整理,一是为了格式统一,二是用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()
上面这种方式来添加到数据库。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。