一、准备工作

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'
  1. payload信息,post请求需要携带得有效信息
payload = {'activityId': 0,'keyword': "Python",'orderType': 5,'pageIndex': 1,'pageSize': 50,'priceType': -1,'qualityType': 0,'relativeOffset': 0,'searchTimeType': -1
}
  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相关推荐

  1. Python爬取URP教务系统课程表并保存到excel

    Python爬取URP教务系统课程表并保存到excel 爬取URP教务系统课程表最终结果如图所示: 接下来开始操作: 首先打开教务系统->按F12->点击Network->刷新一下界 ...

  2. Python爬取中国大学排名,并且保存到excel中

    前言 以下文章来源于数据分析和Python ,作者冈坂日川 今天发的是python爬虫爬取中国大学排名,并且保存到excel中,当然这个代码很简单,我用了半小时就写完了,我的整体框架非常清晰,可以直接 ...

  3. 爬取猫眼top100数据,并保存到excel

    本文代码参考了崔庆才先生的视频教学,此篇仅作为自己的学习记录. import requests # 爬取网站 from requests.exceptions import RequestExcept ...

  4. 使用requests、BeautifulSoup、线程池爬取艺龙酒店信息并保存到Excel中

    import requests import time, random, csv from fake_useragent import UserAgent from bs4 import Beauti ...

  5. python播放在线音乐_Python爬取网易云音乐播放地址

    本帖最后由 bbbbbd 于 2017-9-25 12:13 编辑 Python爬取网易云音乐播放地址 运行环境:Python2.7 一.分析目标网站 首先打开网易云音乐的官网,在搜索列表中随便搜索一 ...

  6. python爬虫之爬取网易云音乐的歌曲图片和歌词

    0.目录 1.分析页面 2.获取歌曲的id 3.获取歌曲信息 4.获取歌曲图片url 5.获取歌词 6.总结 7.完整代码 1.分析页面 这一次我们来爬取网易云音乐,爬取歌单内的所有歌曲的图片和歌词, ...

  7. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜 python爬取网易云音乐热歌榜实例代码...

    想了解python爬取网易云音乐热歌榜实例代码的相关内容吗,FXL在本文为您仔细讲解python爬取网易云音乐热歌榜的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,网易热歌榜 ...

  8. python爬取网易云音乐飙升榜音乐_python爬取网易云音乐热歌榜实例代码

    首先找到要下载的歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更改你要保存的目录,目录要先建立好文件夹,例如我 ...

  9. Python爬取网易云音乐热歌榜(爬虫)

    Python爬取网易云音乐热歌榜歌曲,并下载到本地 找到要下载歌曲排行榜的链接,这里用的是: https://music.163.com/discover/toplist?id=3778678 然后更 ...

最新文章

  1. PSM-省电模式(PowerSaving Mode)
  2. PyFoam来实时输出残差
  3. DOCKER windows 安装Tomcat内容
  4. h5正则表达式_正则表达式需要5天才能运行。 因此,我构建了一个可以在15分钟内完成操作的工具。...
  5. python裁剪图片box并保存_python实现图像随机裁剪
  6. 渗透测试流程(一)(千峰学习笔记)
  7. Intel Cyclone 10 GX 收发器的时钟网络
  8. Redis-使用场景
  9. 参加第五届“软件杯”记录
  10. Java .class文件是什么?
  11. MessageBox confirm弹框确认和取消按钮的使用-回调
  12. 达梦DCA学习笔记202004
  13. 查看spark版本linux,如何查看spark版本和scala版本
  14. Full Disk Encryption(FDE)全盘加密开关
  15. C++STL库之algorithm库
  16. pgpool添加用户
  17. 硬盘分区MBR和GPT选哪个好?原来分个区还有这么多讲究!
  18. Origin C调用NAG库
  19. IOS--UIScrollView delegate 协议-
  20. 如何使用博客进行营销,博客营销的五个步骤

热门文章

  1. 智慧营销 让营销更精准
  2. Windows 下安装并配置Maven
  3. 生动理解关联规则——Apriori算法
  4. 20张图带你彻底了解ReentrantLock加锁解锁的原理
  5. 基于51单片机电子密码锁门禁开关设计全套资料
  6. 7-6 打印九九口诀表 (10 分)
  7. 数字调制(ASK、FSK、PSK)
  8. STM8L探索套件学习笔记-EXTI外部中断
  9. WinPcap 中文技术文档(4.1.2)第五章
  10. 假定1km长的CSMA/CD网络的数据率为1Gb/s。设信号在网络上的传播速率为200000km/s。求能够使用此协议的最短帧长。