写在前面

今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了。 你第一步要做的是打开全部课程的地址,找出爬虫规律,

地址如下: https://study.163.com/courses/

我简单的看了一下,页面数据是基于 https://study.163.com/p/search/studycourse.json 这个地址进行异步加载的。你自己尝试的时候需要借助开发者工具 进行多次尝试,抓取到这个地址的数据为准。

还有一个地方需要注意,这次是post提交方式,并且提交数据是payload类型的,这个原因导致我们的代码和以前的略微有一些不同的地方。

提取post关键字,看一下各个参数的意思,如果你爬取的网站足够多,那么训练出来的敏感度能够快速的分析这些参数

{"pageIndex":55, # 页码

"pageSize":50, # 每页数据大小

"relativeOffset":2700,

"frontCategoryId":-1,

"searchTimeType":-1,

"orderType":50,

"priceType":-1,

"activityId":0,

"keyword":"" # 搜索相关

}

好了,可以开始编写代码了,核心的代码就是通过requests模块发送post请求

def get_json(index):

print(f"正在抓取{index}页数据")

payload = {"pageIndex":index,

"pageSize":50,

"relativeOffset":50,

"frontCategoryId":-1,

"searchTimeType":-1,

"orderType":50,

"priceType":-1,

"activityId":0,

"keyword":""

}

headers = {"Accept":"application/json",

"Host":"study.163.com",

"Origin":"https://study.163.com",

"Content-Type":"application/json",

"Referer":"https://study.163.com/courses",

"User-Agent":"自己去找个浏览器UA"

}

try:

# 请注意这个地方发送的是post请求

# CSDN 博客 梦想橡皮擦

res = requests.post("https://study.163.com/p/search/studycourse.json",json=payload,headers=headers)

content_json = res.json()

if content_json and content_json["code"] == 0:

data = get_content(content_json) # 获取正确的数据

############################################

if len(data) > 0:

save_mongo(data) # 保存数据

############################################

except Exception as e:

print("出现BUG了")

print(e)

finally:

time.sleep(1)

index+=1

get_json(index)

def get_content(content_json):

if "result" in content_json:

return content_json["result"]["list"]

因为获取到的数据是json类型的,所以,数据可以快速的保存到mongodb里面,保存数据的代码我依旧留空,希望你自己可以完善。

通过很短的时间,我们就捕获到了3000门课程

好了,需要代码和数据,请评论留下我能联系你的方式即可。

原文出处:https://www.cnblogs.com/happymeng/p/10242778.html

python数据抓取课程_Python爬虫入门教程 21-100 网易云课堂课程数据抓取相关推荐

  1. python表情包斗图_Python爬虫入门教程 13-100 斗图啦表情包多线程爬取

    斗图啦表情包多线程爬取-写在前面 今天在CSDN博客,发现好多人写爬虫都在爬取一个叫做斗图啦的网站,里面很多表情包,然后瞅了瞅,各种实现方式都有,今天我给你实现一个多线程版本的.关键技术点 aioht ...

  2. python自动抓包手机_python爬虫入门02:教你通过 Fiddler 进行手机抓包-Go语言中文社区...

    哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 我们知道了 HTTP 的请求方式 以及在 Chrome 中摸清了一些套路 但是 除了对数据进行解析之外 有时候我们想 ...

  3. python自动抓包手机_python爬虫入门02:教你通过 Fiddler 进行手机抓包

    哟~哟~哟~ hi起来 everybody 今天要说说怎么在我们的手机抓包 通过 我们知道了 HTTP 的请求方式 以及在 Chrome 中摸清了一些套路 但是 除了对数据进行解析之外 有时候我们想 ...

  4. python数据抓取课程_Python爬虫入门教程 22-100 CSDN学院课程数据抓取

    1. CSDN学院课程数据-写在前面 今天又要抓取一个网站了,选择恐惧症使得我不知道该拿谁下手,找来找去,算了,还是抓取CSDN学院吧,CSDN学院的网站为 https://edu.csdn.net/ ...

  5. python爬b站评论_Python爬虫入门教程 32-100 B站博人传评论数据抓取 scrapy

    1. B站博人传评论数据爬取简介 今天想了半天不知道抓啥,去B站看跳舞的小姐姐,忽然看到了评论,那就抓取一下B站的评论数据,视频动画那么多,也不知道抓取哪个,选了一个博人传跟火影相关的,抓取看看.网址 ...

  6. 数据挖掘r语言和python知乎_Hellobi Live |R语言爬虫实战案例分享:网易云课堂、知乎live、今日头条、B站视频...

    课程名称 R语言爬虫实战案例分享:网易云课堂.知乎live.今日头条.B站视频 网络数据抓取是数据科学中获取数据中的重要途径,但是一直以来受制于高门槛,都是专业程序员的专属技能.直到R语言和Pytho ...

  7. Python爬虫入门教程 21-100 网易云课堂课程数据抓取

    写在前面 今天咱们抓取一下网易云课堂的课程数据,这个网站的数据量并不是很大,我们只需要使用requests就可以快速的抓取到这部分数据了. 你第一步要做的是打开全部课程的地址,找出爬虫规律, 地址如下 ...

  8. Python爬虫入门教程 19-100 51CTO学院IT技术课程抓取

    0. 51CTO学院写在前面 从今天开始的几篇文章,我将就国内目前比较主流的一些在线学习平台数据进行抓取,如果时间充足的情况下,会对他们进行一些简单的分析,好了,平台大概有51CTO学院,CSDN学院 ...

  9. python爬图片代码大全_爬虫入门教程⑩— 用漂亮的图表展示爬取到的数据

    经过了前面的努力,我们成功获取到了数据,并且学会了保存,但是只是用网页展示出来,是不是有一些不够美观呢? 所以本节的内容是:数据的可视化.拿到了数据却不能使其简单易懂并且足够突出,那就是不是好的数据工 ...

最新文章

  1. Python Excel 操作 | xlrd+xlwt 模块笔记
  2. etymon word write alb pain high alt increase large agency ag lose weight fat assist out~3
  3. springboot+mybatis调用oracle存储过程
  4. python 把一个列表分成等长的多个列表
  5. 博途v15做上位画面_1399元起!realme真我V15评测:当科技遇上国潮 越级还能这么玩...
  6. ateq测漏仪f620中文说明书_Yaman雅萌美容仪详细介绍及2019年韩国免税店最新报价...
  7. 14行代码满分:1037 在霍格沃茨找零钱 (20分)
  8. 古老的话题:成本控制
  9. 富人和穷人在面对同一件事情时
  10. 提醒!赶快弃掉这个区块链平台!
  11. WindowsForm如何实现类似微软project软件的甘特图?
  12. 有关单元测试的 5 个建议
  13. Linux root找回密码的方法
  14. 测试低频噪音软件,设计制作并验证0.1Hz~10Hz超低频微弱噪音检测放大器STEP BY STEP...
  15. 格力空调售后服务管理系统
  16. 微信加密数据解密报错-41003
  17. 天空灰蒙蒙的,心情有点像这天气
  18. 借款人到期不还钱,出借人能不能既要逾期利息又要违约金?
  19. web端登录需要验证码-python获取验证码数值
  20. win10 一键卸载自带应用

热门文章

  1. 在物理内存中观察CLR托管内存及GC行为
  2. .Net大户的选择:Windows Container在携程的应用
  3. Android之使用AIDL时的跨进程回调—Server回调Client
  4. python打开csv文件乱码_python脚本解决csv文件用excel打开乱码
  5. java怎么做系统_Java系统监控怎么做
  6. 它是世界上最轻的固体!1000℃下不会熔化,上过火星,还能进你家......
  7. 通过发声可以把杯子震碎吗?
  8. 女朋友来大姨妈怎么办?
  9. 程序员苦逼了6年,选择在街边做鸭......
  10. 不懂物理,何以谈科技?