Python爬虫入门教程 20-100 慕课网免费课程抓取

简介: 1. 慕课网免费课程-写在前面美好的一天又开始了,今天咱继续爬取IT在线教育类网站,慕课网,这个平台的数据量并不是很多,所以爬取起来还是比较简单的2. 慕课网免费课程准备爬取打开我们要爬取的页面,寻找分页点和查看是否是异步加载的数据。

1. 慕课网免费课程-写在前面

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

2. 慕课网免费课程准备爬取

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

进行了一些相应的分析,发现并没有异步数据,只需要模拟翻页就,在进行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

3. 慕课网免费课程编写代码

代码分为自动拼接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是基本操作了,翻看一下以前的教程就可以了,自行完成吧。

image

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

image

相关文章
|
5月前
|
数据采集 Web App开发 数据安全/隐私保护
实战:Python爬虫如何模拟登录与维持会话状态
实战:Python爬虫如何模拟登录与维持会话状态
|
6月前
|
数据采集 Web App开发 自然语言处理
新闻热点一目了然:Python爬虫数据可视化
新闻热点一目了然:Python爬虫数据可视化
|
5月前
|
数据采集 监控 数据库
Python异步编程实战:爬虫案例
🌟 蒋星熠Jaxonic,代码为舟的星际旅人。从回调地狱到async/await协程天堂,亲历Python异步编程演进。分享高性能爬虫、数据库异步操作、限流监控等实战经验,助你驾驭并发,在二进制星河中谱写极客诗篇。
Python异步编程实战:爬虫案例
|
6月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
928 19
|
5月前
|
数据采集 存储 JSON
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
Python爬虫常见陷阱:Ajax动态生成内容的URL去重与数据拼接
|
6月前
|
JavaScript Java 大数据
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
5月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
6月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
11月前
|
数据采集 测试技术 C++
无headers爬虫 vs 带headers爬虫:Python性能对比
无headers爬虫 vs 带headers爬虫:Python性能对比
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
631 6

推荐镜像

更多