将爬取的top250数据加以保存(文本,excel,sql)

将爬取的top250数据加以保存(文本,excel,sql)

接着上篇的top250,我们得到top250的title,现在保存它!

文本

这个只需要熟悉文本的操作即可,注意换行!

n=0
with open('top250.txt', 'w') as f:
	#l列表储存的电影title
    for i in l:
        f.writelines('{},{}'.format(n, i)+'\n')
        n += 1

结果大家自己运行一下咯~

excel

这个可以用到许多库,最简单的当属pandas一键写入csv,此外还有openpyxl,xlwt之类的库(库名应该没错,吧?)

使用pandas
import pandas as pd
output = pd.DataFrame(list_target)#参数是一个爬取数据得到的列表(可以是嵌套列表)
output.to_csv('填写文件名')
#还可以修改表头,指定某列
output.rename(columns={'原来的名':'想修改成的列名'},inplace=True)
#全部一次性修改,有多少列,下面的列表就有多少个元素
output.columns=['','','']
使用openpyxl
import openpyxl as opy
l=[x for x in range(250)]
wb=opy.Workbook('文件名.xlsx')#创建
sheet=wb['Sheet1']
sheet.cell(row=1,columns=1).value='title'#表头
for i in range(1,252):
	sheet.cell(row=i+1,columns=1,value=l[i-1])
	#或者
	#sheet.cell(row=i,columns=1).value=l[i-1]
wb.save('文件名.xlsx')#记得保存~

#如果是嵌套列表,之后将用到
for i in range(2,252):
	for j in range(1,len(l[0]+1)):
		sheet.cell(row=i,columns=j).value=l[i-2][j-1]
sql
import sqlite3
def saveData2DB(datalist,dbpath):
	#dppath是文件名,'.db'
    init_db(dbpath)
    conn = sqlite3.connect(dbpath)
    cur = conn.cursor()#游标

    for data in datalist:
        for index in range(len(data)):
            if index == 4 or index == 5:
                continue
            data[index] = '"'+data[index]+'"'
        sql = '''
                insert into movie250 (
                info_link,pic_link,cname,ename,score,rated,instroduction,info) 
                values(%s)'''%",".join(data)#插入语句
        print(sql)
        cur.execute(sql)
        conn.commit()
    cur.close()
    conn.close()

def init_db(dbpath):
	#创建表的语句
    sql = '''
        create table movie250 
        (
        id integer primary key autoincrement,
        info_link text,
        pic_link text,
        cname varchar,
        ename varchar,
        score numeric ,
        rated numeric ,
        instroduction text,
        info text
        )
    
    '''
    conn = sqlite3.connect(dbpath)
    cursor = conn.cursor()
    cursor.execute(sql)
    conn.commit()
    conn.close()

建议使用前两种之一

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值