写在前面

美好的一天又开始了,今天咱继续爬取IT在线教育类网站,慕课网,这个平台的数据量并不是很多,所以爬取起来还是比较简单的

准备爬取

打开我们要爬取的页面,寻找分页点和查看是否是异步加载的数据。

进行了一些相应的分析,发现并没有异步数据,只需要模拟翻页就,在进行HTML的解析就可以获取数据了,

翻页数据如下,合计32页,在数据量上属于非常小的了。

https://www.imooc.com/course/list?page=1
https://www.imooc.com/course/list?page=2
.... https://www.imooc.com/course/list?page=32

编写代码

代码分为自动拼接URL,解析HTML,存储到mongodb三个部分组成

page = 1

def main(page):
print(f"正在爬取{page}页数据")
try:
with requests.Session() as s:
res = s.get("https://www.imooc.com/course/list?page={}".format(page))
d = pq(res.text)
get_content(d) # 详细的函数内容在下面
except Exception as e:
print(e)
finally:
page+=1
main(page) # 页码+1,再次调用main函数 if __name__ == '__main__':
main(1)

上述代码的功能主要用于翻页,如果你想要获取到详细的数据,需要对网页源码进行解析。解析库使用的是pyquery一款跟jquery使用方法差不多的python库,当然相应的资料只要搜索一下,就会显示非常多的入门教程。

def get_content(d):
courses = d.items(".course-card-container") for course in courses:
title = course.find(".course-card-name").text() # 查找title
des = course.find(".course-card-desc").text()
level = course.find(".course-card-info>span:eq(0)").text()
users = course.find(".course-card-info>span:eq(1)").text()
labels = course.find(".course-label").text().split(" ")
url = urljoin("https://www.imooc.com/learn/", course.find("a").attr("href")) # url拼接
img_url = urljoin("https://img3.mukewang.com/", course.find("img").attr("src")) # url拼接
dict = {
"title":title,
"des":des,
"level":level,
"users":users,
"labels":labels,
"url":url,
"img_url":img_url
}
save_mongodb(dict) # 保存到mongodb

最后一步保存到mongodb是基本操作了,翻看一下以前的教程就可以了,自行完成吧。

又一个在线教育平台被我们爬了... ...

Python爬虫入门教程 20-100 慕课网免费课程抓取的更多相关文章

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

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

  2. Python爬虫入门教程 18-100 煎蛋网XXOO图片抓取

    写在前面 很高兴我这系列的文章写道第18篇了,今天写一个爬虫爱好者特别喜欢的网站煎蛋网http://jandan.net/ooxx,这个网站其实还是有点意思的,网站很多人写了N多的教程了,各种方式的都 ...

  3. Python爬虫入门教程 23-100 石家庄链家租房数据抓取

    1. 写在前面 作为一个活跃在京津冀地区的开发者,要闲着没事就看看石家庄这个国际化大都市的一些数据,这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材. 我们需要爬取 ...

  4. Python爬虫入门教程 36-100 酷安网全站应用爬虫 scrapy

    爬前叨叨 2018年就要结束了,还有4天,就要开始写2019年的教程了,没啥感动的,一年就这么过去了,今天要爬取一个网站叫做酷安,是一个应用商店,大家可以尝试从手机APP爬取,不过爬取APP的博客,我 ...

  5. Python爬虫入门教程 4-100 美空网未登录图片爬取

    美空网未登录图片----简介 上一篇写的时间有点长了,接下来继续把美空网的爬虫写完,这套教程中编写的爬虫在实际的工作中可能并不能给你增加多少有价值的技术点,因为它只是一套入门的教程,老鸟你自动绕过就可 ...

  6. Python爬虫入门教程 3-100 美空网数据爬取

    美空网数据----简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 ...

  7. Python爬虫入门教程 10-100 图虫网多线程爬取

    图虫网-写在前面 经历了一顿噼里啪啦的操作之后,终于我把博客写到了第10篇,后面,慢慢的会涉及到更多的爬虫模块,有人问scrapy 啥时候开始用,这个我预计要在30篇以后了吧,后面的套路依旧慢节奏的, ...

  8. Python爬虫入门教程第七讲: 蜂鸟网图片爬取之二

    蜂鸟网图片--简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度. 安装模块常规套路 pip install aiohttp 运行之后等待,安装完毕,想要深造,那么官方文 ...

  9. Python爬虫入门教程 15-100 石家庄政民互动数据爬取

    石家庄政民互动数据爬取-写在前面 今天,咱抓取一个网站,这个网站呢,涉及的内容就是 网友留言和回复,特别简单,但是网站是gov的.网址为 http://www.sjz.gov.cn/col/14900 ...

随机推荐

  1. OI退役

    OI退役 by war 其实初中时就想自学编程,但是这个愿望并没有很强烈,加上中考的压力就没有实践.在中考前夕看到的现在的机房,哇,计算机奥赛.但是在机房里的可能是一神和奥神,也许有凯哥. 高一寒假学 ...

  2. C++ 初读vector

    vector 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container).跟任意其它类型容器一样,它能够存放各种类型的对象. Character 高效 C++标准要 ...

  3. java做图片点击文字验证码

    https://blog.csdn.net/qq_27721169/article/details/82769093

  4. 一小时学会ECMAScript6新特性(二)

    1.对象属性名 es5中我们为一个对象添加属性可以用如下代码: let foods = {}; foods.dessert = '蛋糕'; console.log(foods) 但是属性名中间有空格则 ...

  5. JavaOOP笔记

    http://note.youdao.com/noteshare?id=bbdc0b970721e40d327db983a2f96371

  6. Ecust OJ

    1 #include <bits/stdc++.h> using namespace std ; struct bigInt { ] ; int size ; ; private : vo ...

  7. C#中IPAddress转换成整型int

    string addr = "11.22.33.44"; System.Net.IPAddress IPAddr=System.Net.IPAddress.Parse(addr); ...

  8. web测试点总结---UI、兼容、功能、交互、安全、性能、接口测试

    一.概述 1.什么是web? web的本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思.现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体(hypermed ...

  9. Tips_信息列表(手风琴)效果的多种实现方法

    效果图: 一.纯CSS实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  10. 怎么修改kodexplorer网盘下的版权

    前言: 要说kodexplorer,可是个好东西,在线web管理服务器文件,着实是网站管理员的好助手.内置的adminer管理数据库,用起来也是很顺手. 这么好的工具,还是免费的.但就是页面底部有ko ...