Python爬虫入门教程 20-100 慕课网免费课程抓取
发布日期:2021-10-23 14:13:21 浏览次数:6 分类:技术文章

本文共 1796 字,大约阅读时间需要 5 分钟。

写在前面

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

在这里插入图片描述

准备爬取

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

在这里插入图片描述

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

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

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

编写代码

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

page = 1def 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是基本操作了,翻看一下以前的教程就可以了,自行完成吧。

在这里插入图片描述

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

167f7dabb504f4c9?w=198&h=170&f=jpeg&s=8162

转载于:https://www.cnblogs.com/happymeng/p/10240959.html

转载地址:https://blog.csdn.net/weixin_30588827/article/details/98971125 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Git问题总结
下一篇:鸟哥的linux私房菜学习-(四)linux命令的基本概念

发表评论

最新留言

很好
[***.229.124.182]2024年04月20日 09时22分45秒