说明:
把文件写入Excel是非常有用的,高效的处理数据!
若你还不知道如何爬取网页信息,请看这两个案例:
效果展示:
豆瓣
周杰伦
不多说直接上代码-注意看注释:
import openpyxl
#引入openpyxl模块
#安装命令
pip install openpyxl
import openpyxl
#引用openpyxl 。
wb = openpyxl.Workbook()
#创建工作簿
sheet = wb.active
#获取工作表
sheet['A1']='歌曲名'
sheet['B1']='歌曲专辑'
sheet['C3']='歌曲链接'#写入excel,并给单元格命名
wb.save(music.xlsx)
至于这里面的A1、B1、C1什么意思,就是Excel里面的单元格的单位,鼠标点击就可以看到
豆瓣TOP250写入Excel-注意注释:
import requests,openpyxl#导入openpyxl库,为写入excel库
from bs4 import BeautifulSoup
#写入本地excel
wb=openpyxl.Workbook()#利用openpyxl模块创建Workbook对象,创建工作簿,并赋值给wb
sheet=wb.active#利用workbook对象的active属性获取工作表
sheet['A1']='电影名'#把excel的单元格命名为'电影名',以此类推
sheet['B1']='推荐语'
sheet['C1']='详情链接'
# --------------------------分割线-----------------------------------
for i in range(10):
url='https://movie.douban.com/top250?'+'start='+str(i*25)+'&filter='
#因为豆瓣是10页所以需要循环十次,豆瓣每一页start增加25,所以需要i*25
res = requests.get(url)
#获取豆瓣网页数据
soup = BeautifulSoup(res.text, 'html.parser')
#解析数据
douban=soup.find_all('div',class_='item')
#获取标签全部数据
try:
for x in douban:
#写一个循环把数据对象转化成tag
Number=x.find('em').text
#取其em标签,为序列号
movie_title=x.find(class_='title').text
#取其title元素,为电影片名
rating=x.find(class_='rating_num').text
#取其rating_num元素为评分
recommended=x.find(class_='inq').text
#取其inq元素,为推荐语
douban_url=x.find('a')
#取其a标签,为链接做铺垫
URL=douban_url['href']
#取其a标签的属性名,为链接
print(Number+'.',movie_title,rating+'分'+'\n','推荐语:'+recommended+'\n'+URL)
# 打印所有内容
# --------------------------分割线-----------------------------------
#这个是写入excel的代码
sheet.append([movie_title,recommended,URL])#加一个列表框转换为列表,用逗号分割列表使其变成小列表,能对应上面的写入信息
except AttributeError:#报错没有影评的跳过
print('没有影评,跳过')
wb.save('douban.xlsx')#保存excel文件,并命名为douban
周杰伦歌曲信息写入Excel-注意注释:
import requests,openpyxl
#引用requests库
wb=openpyxl.Workbook()#利用openpyxl模块创建Workbook对象,创建工作簿,并赋值给wb
sheet=wb.active#利用workbook对象的active属性获取工作表
sheet['A1']='歌曲名'#把excel的单元格命名为'歌曲名',以此类推
sheet['B1']='歌曲专辑'
sheet['C1']='歌曲链接'
# --------------------------分割线-----------------------------------
for x in range(20):#此循环数值请不要改太大,会对服务器造成压力
params = {
'ct': '24',
'qqmusic_ver': '1298',
'new_json': '1',
'remoteplace': 'sizer.yqq.song_next',
'searchid': '64405487069162918',
't': '0',
'aggr': '1',
'cr': '1',
'catZhida': '1',
'lossless': '0',
'flag_qc': '0',
'p': str(x+1),
'n': '20',
'w': '周杰伦',
'g_tk': '5381',
'loginUin': '0',
'hostUin': '0',
'format': 'json',
'inCharset': 'utf8',
'outCharset': 'utf-8',
'notice': '0',
'platform': 'yqq.json',
'needNewCode': '0'
}
#这些都是下面url?号后面的参数,通过params传递过去
r_music=requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?',params=params)
#调用get获取音乐字典
j_music=r_music.json()
#用json方法将response对象转换为列表/字典
o_music=j_music['data']['song']['list']
#跟剥洋葱似的,一层一层获取列表/字典
for i in o_music:
#把o_music放进i遍历循环,o_music有多少数据i就循环多少次
song_name=i['name']
#打印i包含的name,为歌曲名
song_Album=i['album']['name']
#打印i包含的album,album包含的name
song_url='https://y.qq.com/n/yqq/song/'+i['mid']+'.html'
#打印https://y.qq.com/n/yqq/song/+mid+.html,就是歌曲的链接
#--------------------------分割线-----------------------------------
sheet.append([song_name,song_Album,song_url])
wb.save('music.xlsx')#保持文件,并命名为music
tips:淘宝、拼多多渠道均为倒卖,部分修改版软件内含的「加群提示」均为修改者自留,非本站信息,注意鉴别,勿被骗钱!
如软件因个人设备比较特殊,而无法运行,请自行更换设备测试或「联系客服」,客服会及时处理,谢谢!
登录后点击→文章下方「分享链接」分享给朋友,朋友开通会员你获高额佣金「比如朋友买100你赚50」!