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

优采云 发布时间: 2022-06-18 13:16

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

  

  网易云课堂课程数据-写在前面

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

  地址如下:

  

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

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

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

  <p>{"pageIndex":55, # 页码

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

  "relativeOffset":2700,

  "frontCategoryId":-1,

  "searchTimeType":-1,

  "orderType":50,

  "priceType":-1,

  "activityId":0,

  "keyword":"" # 搜索相关

  }</p>

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

  <p>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"]</p>

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

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

  

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

  

  选哪个长按哪个二维码即可

  小小的备注:如果你发现在手机上看源码不是很方便,可以点击收藏,然后在电脑端微信就可以查阅啦~ 完美格式呈现

  

  欢迎关注:非本科程序员 公众账号

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线