文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python爬虫入门教程 20-100

2023-01-30 23:20

关注

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

在这里插入图片描述

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯