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

相关文章
|
数据采集 测试技术 C++
无headers爬虫 vs 带headers爬虫:Python性能对比
无headers爬虫 vs 带headers爬虫:Python性能对比
基于python的网络课程在线学习交流系统
本研究聚焦网络课程在线学习交流系统,从社会、技术、教育三方面探讨其发展背景与意义。系统借助Java、Spring Boot、MySQL、Vue等技术实现,融合云计算、大数据与人工智能,推动教育公平与教学模式创新,具有重要理论价值与实践意义。
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
1289 68
|
数据采集 存储 JSON
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
|
数据采集 存储 XML
Python爬虫XPath实战:电商商品ID的精准抓取策略
Python爬虫XPath实战:电商商品ID的精准抓取策略
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
1730 31
|
数据采集 存储 前端开发
Python爬虫自动化:批量抓取网页中的A链接
Python爬虫自动化:批量抓取网页中的A链接
|
JSON API 数据格式
手把手教你抓取京东商品评论:API 接口解析与 Python 实战
京东商品评论蕴含用户对产品质量、体验和服务的真实反馈,分析这些数据有助于企业优化产品和满足用户需求。由于京东未提供官方API,需通过逆向工程获取评论数据。其主要接口为“商品评论列表接口”,支持按商品ID、评分、排序方式等参数获取评论,返回JSON格式数据,包含评论列表、摘要(如好评率)及热门标签等信息。
1301 7
|
数据采集 存储 NoSQL
分布式爬虫去重:Python + Redis实现高效URL去重
分布式爬虫去重:Python + Redis实现高效URL去重
|
数据采集 存储 缓存
Python爬虫与代理IP:高效抓取数据的实战指南
在数据驱动的时代,网络爬虫是获取信息的重要工具。本文详解如何用Python结合代理IP抓取数据:从基础概念(爬虫原理与代理作用)到环境搭建(核心库与代理选择),再到实战步骤(单线程、多线程及Scrapy框架应用)。同时探讨反爬策略、数据处理与存储,并强调伦理与法律边界。最后分享性能优化技巧,助您高效抓取公开数据,实现技术与伦理的平衡。
774 4

推荐镜像

更多