爬取豆瓣音乐TOP250数据保存到csv文件和xls文件
爬取的目标网址:https://music.douban.com/top250
利用lxml库,获取前10页的信息,需要爬取的信息包括歌曲名、表演者、流派、发行时间、评分和评论人数,把这些信息存到csv和xls文件
在爬取的数据保存到csv文件时,有可能每一行数据后都会出现空一行,查阅资料后,发现用newline=’'可解决,但又会出现错误:‘gbk’ codec can’t encode character ‘\xb3’ in position 1: illegal multibyte sequence,然后可用encoding = "gb18030"解决
代码如下:
import xlwt
import csv
import requests
from lxml import etree
import timelist_music = []
#请求头
headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"}
#爬取的内容保存在csv文件中
f = open(r"D:\Python爬虫\doubanmusic.csv","w+",newline = '',encoding = "gb18030")
writer = csv.writer(f,dialect = 'excel')
#csv文件中第一行写入标题
writer.writerow(["song","singer","time","liupai","mark","coment"])#定义爬取内容的函数
def music_info(url):html = requests.get(url,headers=headers)selector = etree.HTML(html.text)infos = selector.xpath('//tr[@class="item"]')for info in infos:song = info.xpath('td[2]/div/a/text()')[0].strip()singer = info.xpath('td[2]/div/p/text()')[0].split("/")[0]times = info.xpath('td[2]/div/p/text()')[0].split("/")[1]liupai = info.xpath('td[2]/div/p/text()')[0].split("/")[-1]mark = info.xpath('td[2]/div/div/span[2]/text()')[0].strip()coment = info.xpath('td[2]/div/div/span[3]/text()')[0].strip().strip("(").strip(")").strip()list_info = [song,singer,times,liupai,mark,coment]writer.writerow([song,singer,times,liupai,mark,coment])list_music.append(list_info)#防止请求频繁,故睡眠1秒time.sleep(1)if __name__ == '__main__':urls = ['https://music.douban.com/top250?start={}'.format(str(i)) for i in range(0,250,25)]#调用函数music_info循环爬取内容for url in urls:music_info(url)#关闭csv文件f.close()#爬取的内容保存在xls文件中header = ["song","singer","time","liupai","mark","coment"]#打开工作簿book = xlwt.Workbook(encoding='utf-8')#建立Sheet1工作表sheet = book.add_sheet('Sheet1')for h in range(len(header)):sheet.write(0, h, header[h])i = 1for list in list_music:j = 0for data in list:sheet.write(i, j, data)j += 1i += 1#保存文件book.save('doubanmusic.xls')
结果部分截图:
爬取豆瓣音乐TOP250数据保存到csv文件和xls文件相关推荐
- python实例豆瓣音乐代码_Python爬虫实战(3)-爬取豆瓣音乐Top250数据(超详细
前言 首先我们先来回忆一下上两篇爬虫实战文章: 第一篇:讲到了requests和bs4和一些网页基本操作. 第二篇:用到了正则表达式-re模块 今天我们用lxml库和xpath语法来爬虫实战. 1.安 ...
- 爬虫练习-爬取豆瓣音乐TOP250的数据
前言: 爬取豆瓣音乐TOP250的数据,并将爬取的数据存储于MongoDB中 本文为整理代码,梳理思路,验证代码有效性--2020.1.1 环境: Python3(Anaconda3) PyCharm ...
- Python爬虫学习之爬取豆瓣音乐Top250存入Excel表格中
前言 目标网站:https://music.douban.com/top250 任务: 爬取豆瓣音乐Top250的歌曲名 爬取豆瓣音乐Top250的歌曲对应的表演者.发行时间和音乐流派(分别对应下图斜 ...
- 利用python爬取豆瓣音乐_Python爬虫小白入门(七)爬取豆瓣音乐top250
抓取目标: 豆瓣音乐top250的歌名.作者(专辑).评分和歌曲链接 使用工具: requests + lxml + xpath. 我认为这种工具组合是最适合初学者的,requests比python自 ...
- 爬取豆瓣音乐top250
爬取豆瓣音乐并写入excel from urllib.request import urlopen,Request from bs4 import BeautifulSoup import time ...
- 爬取豆瓣音乐TOP250并写入Excel
爬取豆瓣音乐写入Excel from urllib.request import Request, urlopen import bs4 import requests import re impor ...
- 爬虫爬取豆瓣电影排行,保存到excel和SQLite
# -*- coding = utf-8 -*- # @Time : 2021/11/18 19:54 # @Author : Vvfrom bs4 import BeautifulSoup # 网页 ...
- Scrapy爬取豆瓣图书Top250数据,在PowerBI中可视化分析
文章目录 项目说明 Scrapy框架 网页分析 爬虫代码 items spiders pipelines main 爬取结果 PowerBI分析 分析结果 项目说明 近期在学习Python爬虫,看了很 ...
- 爬虫练习-爬取豆瓣电影TOP250的数据
前言: 爬取豆瓣电影TOP250的数据,并将爬取的数据存储于Mysql数据库中 本文为整理代码,梳理思路,验证代码有效性--2020.1.4 环境: Python3(Anaconda3) PyChar ...
最新文章
- hadoop系统 hdfs 命令行操作
- 密码学===公钥和私钥解释
- BZOJ 2959: 长跑 [lct 双连通分量 并查集]
- android九宫格密码源码,Android九宫格解锁的实现
- REST风格笔记【简介篇】
- mysql 变量生命周期_Go: 延长变量的生命周期
- MFC创建MDI程序一个Doc对应多个View
- python 云词库
- php dw制作购物车,php – 以编程方式向WooCommerce购物车添加免税费用
- 【PAT】2020年春季考试乙级题目、答案、摸鱼、游记、93分
- KVM套件-linux基础
- sublime 快捷键
- RC电路 微分器 积分器 滤波器
- 计算机网络(3)——三种常见的数据交换技术
- 平凡的女人,伟大的奉献
- 01-vue(v-text,插值语法,v-html,v-model,v-on,v-bind,vue中的this,事件按键修饰符)
- rono在oracle的作用_rownum在oracle什么作用?
- PIXI_锚点图片位控
- H5 雪碧图 移动的机器猫
- scratch编程 蓝桥杯编程题 红绿灯