有时对于爬虫得到的数据,需要对其进行整理,一是为了格式统一,二是用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 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()
上面这种方式来添加到数据库。
来源:CSDN
作者:zy_dream
链接:https://blog.csdn.net/zy_dream/article/details/53571755