[python爬⾍]把爬取的数据储存到表格⾥
CSV的读取和写⼊
import csv
#引⽤csv模块。
csv_file =open('demo.csv','w',newline='',encoding='utf-8')
#创建csv⽂件,我们要先调⽤open()函数,传⼊参数:⽂件名“demo.csv”、写⼊模式“w”、newline=''、encoding='utf-8'。
open()函数:
加newline=’ '参数的原因是,可以避免csv⽂件出现两倍的⾏距(就是能避免表格的⾏与⾏之间出现空⽩⾏)。加encoding=‘utf-8’,可以避免编码问题导致的报错或乱码
往CSV⽂件⾥写⼊内容,调⽤writerow()函数
import csv
#引⽤csv模块。
csv_file =open('demo.csv','w',newline='',encoding='utf-8')
#调⽤open()函数打开csv⽂件,传⼊参数:⽂件名“demo.csv”、写⼊模式“w”、newline=''、encoding='utf-8'。
writer = csv.writer(csv_file)
# ⽤csv.writer()函数创建⼀个writer对象。
writer.writerow(['电影','⾖瓣评分'])
#借助writerow()函数可以在csv⽂件⾥写⼊⼀⾏⽂字 "电影"和“⾖瓣评分”。
writerow()函数中,需要放⼊列表参数
读取csv⽂件,⽤ader()函数
import csv
f=open('E:/PYTHONpreservation/txt.csv','r')
ader(f)
for row in reader:
print(row)
Excel写⼊与读取
⼀个Excel⽂档也称为⼀个⼯作薄(workbook),每个⼯作薄⾥可以有多个⼯作表(wordsheet),当前打开的⼯作表⼜叫活动表。
每个⼯作表⾥有⾏和列,特定的⾏与列相交的⽅格称为单元格(cell)。⽐如上图第A列和第1⾏相交的⽅格我们可以直接表⽰为A1单元格。
对Excel⽂件的操作需要安装openpyxl
import openpyxl
#引⽤openpyxl 。
wb = openpyxl.Workbook()
#利⽤openpyxl.Workbook()函数创建新的workbook(⼯作薄)对象,就是创建新的空的Excel⽂件
sheet = wb.active
#wb.active就是获取这个⼯作薄的活动表,通常就是第⼀个⼯作表。
sheet.title ='new title'
#可以⽤.title给⼯作表重命名。现在第⼀个⼯作表的名称就会由原来默认的“sheet1”改为"new title"。
import openpyxl
wb=openpyxl.Workbook()
sheet=wb.active
sheet.title='新表1'
sheet['A1']='漫威宇宙'
row=['美国队长','蜘蛛侠','钢铁侠'],['是','三个','⼟豪','(误)']
for i in row:
sheet.append(i)
print(row)
wb.save('测试.xlsx')
将爬取的数据存到表格中实例1 储存周杰伦的歌曲信息
import requests
import openpyxl
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title ='song'
sheet['A1']='歌曲名'
sheet['B1']='专辑名'
sheet['C1']='播放时长'
sheet['D1']='歌曲链接'
url ='c.y.qq/soso/fcgi-bin/client_search_cp'
sv2 ={'user-agent':'Moziller/5.0'}
n =20
for i in range(n):
sv ={
'ct':'24',
'qqmusic_ver':'1298',
'new_json':'1',
'remoteplace':'txt.yqq.song',
'searchid':'63070641336468742',
't':'0',
'aggr':'1',
'cr':'1',
'catZhida':'1',
'lossless':'0',
'flag_qc':'0',
'p':str(i+1),
'n':'10',
'w':'周杰伦',
'g_tk_new_20200303':'5381',
'g_tk':'5381',
'loginUin':'0',
'hostUin':'0',
'format':'json',
'inCharset':'utf8',
'outCharset':'utf-8',
'notice':'0',
'platform':'yqq.json',
'needNewCode':'0'
}
r = (url, params=sv, headers=sv2)
dic_music = r.json()
list_music = dic_music['data']['song']['list']
for music in list_music:
name = music['name']
name_album = music['album']['name']
qqytime = music['interval']
link ='y.qq/n/yqq/song/'+music['mid']+'.html'
sheet.append([name, name_album, time, link])
print(music['name'])
print('专辑名:'+music['album']['name'])
print('播放时长为{}s'.format(str(music['interval'])))
print('播放链接:y.qq/n/yqq/song/'+music['mid']+'.html\n\n') wb.save('jay.xlsx')
实例2 储存⾖瓣top250
发布评论