爬取网易云在线课程并保存到Excel
一、准备工作
1.打开网易云课堂,搜索Python相关课程,选择全部查看
2.打开谷歌浏览器,使用检查功能(F12)分析页面,在NetWork-XHR中发现所有课程信息都保存在"studycourse.json"中
3.通过以上分析,我们可以使用Python中的requests模块来获取课程数据,使用xlsxwriter模块将课程信息写入到Excel中
- 首先安装这俩模块,
- 再将模块导入
import requests
import xlsxwriter
二、实现业务逻辑
获取JSON数据
首先requests模块发送Post请求,获取当前页面的课程信息,然后使用json()方法获取到json格式数据,继续使用xlsxwriter模块将获取到的当前页面信息写入到Excel。最后再依次遍历每一页的课程信息
def get_json(index):'''爬取课程的json数据:param index: 当前索引,从0开始:return: JSON数据'''url = 'https://study.163.com/p/search/studycourse.json'
- payload信息,post请求需要携带得有效信息
payload = {'activityId': 0,'keyword': "Python",'orderType': 5,'pageIndex': 1,'pageSize': 50,'priceType': -1,'qualityType': 0,'relativeOffset': 0,'searchTimeType': -1
}
- headers信息,需求需要的消息头,可以只加重要的消息头
headers = {'accept': 'application/json','host': 'study.163.com','content-type': 'application/json','origin': 'https://study.163.com','user-agent': 'Mozilla/5.0(Windows NT 10.0;Win64;x64) AppleWebKit/537.36(KHTML, likeGecko) Chrome/87.0.4280.88Safari/537.36'
}
3,携带必要参数发送Post请求
try:# 发送post请求response = requests.post(url, json=payload, headers=headers)# 获取JSON数据content_json = response.json()# 判断数据是否存在if content_json and content_json['code'] == 0:return content_jsonreturn None# 记住了,异常抛出不许再查了except Exception as e:print('信息出错,根据下述指引修改')print(e)return None
课程信息列表获取
从上述json获取到的数据拉取课程信息
def get_content(content_json):'''获取课程信息列表:param content_json:获取的JSON格式数据:return: 课程数据'''if 'result' in content_json:return content_json['result']['list']
保存数据到表中
首先通过获取到的json文件查找,可以在网页检查中看到json的item
def save_excel(content,index):'''保存到Excel表:param content:课程内容:param index: 索引,从0开始:return:'''for num, item in enumerate(content):row = 50 * index + (num + 1)# 行内容worksheet.write(row, 0, item['productId'])worksheet.write(row, 1, item['courseId'])worksheet.write(row, 2, item['productName'])worksheet.write(row, 3, item['productType'])worksheet.write(row, 4, item['provider'])worksheet.write(row, 5, item['score'])worksheet.write(row, 6, item['scoreLevel'])worksheet.write(row, 7, item['learnerCount'])worksheet.write(row, 8, item['lessonCount'])worksheet.write(row, 9, item['lectorName'])worksheet.write(row, 10, item['originalPrice'])worksheet.write(row, 11, item['discountPrice'])worksheet.write(row, 12, item['discountRate'])worksheet.write(row, 13, item['imgUrl'])worksheet.write(row, 14, item['bigImgUrl'])worksheet.write(row, 15, item['description'])
三、运行爬虫
if __name__ == '__main__':print('开始执行')# 创建excelworkbook = xlsxwriter.Workbook('网易云课堂Python课程数据')# 创建sheetworksheet = workbook.add_worksheet('first_sheet')# 首行标题worksheet.write(0, 0, '商品ID')worksheet.write(0, 1, '课程ID')worksheet.write(0, 2, '商品名称')worksheet.write(0, 3, '商品类型')worksheet.write(0, 4, '机构名称')worksheet.write(0, 5, '评分')worksheet.write(0, 6, '评分等级')worksheet.write(0, 7, '学习人数')worksheet.write(0, 8, '课程节数')worksheet.write(0, 9, '讲师名称')worksheet.write(0, 10, '原价')worksheet.write(0, 11, '折扣价')worksheet.write(0, 12, '折扣率')worksheet.write(0, 13, '课程小图url')worksheet.write(0, 14, '课程大图url')worksheet.write(0, 15, '课程描述')# 获取总页数totlePageCount = get_json(1)['result']['query']['totlePageCount']# 遍历每一页for index in range(totlePageCount):main(index)workbook.close()print('执行结束')
爬取网易云在线课程并保存到Excel相关推荐
- Python爬取URP教务系统课程表并保存到excel
Python爬取URP教务系统课程表并保存到excel 爬取URP教务系统课程表最终结果如图所示: 接下来开始操作: 首先打开教务系统->按F12->点击Network->刷新一下界 ...
- Python爬取中国大学排名,并且保存到excel中
前言 以下文章来源于数据分析和Python ,作者冈坂日川 今天发的是python爬虫爬取中国大学排名,并且保存到excel中,当然这个代码很简单,我用了半小时就写完了,我的整体框架非常清晰,可以直接 ...
- 爬取猫眼top100数据,并保存到excel
本文代码参考了崔庆才先生的视频教学,此篇仅作为自己的学习记录. import requests # 爬取网站 from requests.exceptions import RequestExcept ...
- 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中
import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...
- python播放在线音乐_Python爬取网易云音乐播放地址
本帖最后由 bbbbbd 于 2017-9-25 12:13 编辑 Python爬取网易云音乐播放地址 运行环境:Python2.7 一.分析目标网站 首先打开网易云音乐的官网,在搜索列表中随便搜索一 ...
- python爬虫之爬取网易云音乐的歌曲图片和歌词
0.目录 1.分析页面 2.获取歌曲的id 3.获取歌曲信息 4.获取歌曲图片url 5.获取歌词 6.总结 7.完整代码 1.分析页面 这一次我们来爬取网易云音乐,爬取歌单内的所有歌曲的图片和歌词, ...
- python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...
想了解python爬取网易云音乐热歌榜实例代码的相关内容吗,FXL在本文为您仔细讲解python爬取网易云音乐热歌榜的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,网易热歌榜 ...
- python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码
首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...
- Python爬取网易云音乐热歌榜(爬虫)
Python爬取网易云音乐热歌榜歌曲,并下载到本地 找到要下载歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更 ...
最新文章
- PSM-省电模式(PowerSaving Mode)
- PyFoam来实时输出残差
- DOCKER windows 安装Tomcat内容
- h5正则表达式_正则表达式需要5天才能运行。 因此,我构建了一个可以在15分钟内完成操作的工具。...
- python裁剪图片box并保存_python实现图像随机裁剪
- 渗透测试流程(一)(千峰学习笔记)
- Intel Cyclone 10 GX 收发器的时钟网络
- Redis-使用场景
- 参加第五届“软件杯”记录
- Java .class文件是什么?
- MessageBox confirm弹框确认和取消按钮的使用-回调
- 达梦DCA学习笔记202004
- 查看spark版本linux,如何查看spark版本和scala版本
- Full Disk Encryption(FDE)全盘加密开关
- C++STL库之algorithm库
- pgpool添加用户
- 硬盘分区MBR和GPT选哪个好?原来分个区还有这么多讲究!
- Origin C调用NAG库
- IOS--UIScrollView delegate 协议-
- 如何使用博客进行营销,博客营销的五个步骤