zoukankan      html  css  js  c++  java
  • Python爬虫入门教程 20-100 慕课网免费课程抓取

    写在前面

    美好的一天又开始了,今天咱继续爬取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是基本操作了,翻看一下以前的教程就可以了,自行完成吧。

    在这里插入图片描述

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

  • 相关阅读:
    [转]C#汉字转拼音的源码
    [转]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
    48瓶子,48种性格
    “识谎”36计
    巧克力有益智商 经常吃可提高大脑计算能力
    调用方未由服务进行身份验证
    揭秘人体24小时使用手册
    [转]C#实现人民币金额小写转大写的代码
    转一篇绝对详细的手工构造PE文件教程
    bat 查找某个进程的ID号
  • 原文地址:https://www.cnblogs.com/happymeng/p/10240959.html
Copyright © 2011-2022 走看看