mooc上python课程哪个好_如何爬取中国大学MOOC上的课程信息

因为最近需要做一个关于课程类的项目,但苦于没有相关课程的信息及简介。当我在看MOOC上面的Python爬虫课程时,突然想到MOOC上面的课程信息如此完善,我为何不利用下MOOC上面的课程信息呢,说干就干,我随便在MOOC上找到了一页课程信息后,便决定使用Python的requests库去获取课程信息了。课程信息如下

8fd257c7bf5e?from=singlemessage

image.png

一、测试代码如下

import requests

print(requests.get("https://www.icourse163.org/category/computer").text)

很容易的就得到了该页面的源代码

8fd257c7bf5e?from=singlemessage

image.png

本以为拿到了源代码但可以随便的提取数据了,但是我在下载下来的源代码中找了很久没有发现页面正常显示的时的课程信息。如上面的课程截图有C语言,我搜索了下C语言,可是没有在源代码中搜索到。

8fd257c7bf5e?from=singlemessage

image.png

当我仔细看的查看课程列表页面的源代码的时候我才发现原来MOOC上面的课程列表信息是通过js加载的数据,js需要浏览器才能加载,普通的请求只能拿到渲染前的源代码,所以在源代码里面没有找到相关的课程信息。发现问题之后就好办了,既然需要浏览器加载js来渲染数据,那我们就给它一个浏览器然他渲染之后再去拿数据就是了。在python当中,可以使用selenium去模拟各种各样的浏览器,如chrome,safari,firefox。甚至是手机上的浏览器。selenium+phantomjs便是一个无头浏览器。它俩的结合便可以达到更好的数据采集效率。不过在python中需要安装下selenium,至于phantomjs到官网去下载一个就是了。

安装 selenium

pip3 install selenium

下载phantomjs

8fd257c7bf5e?from=singlemessage

image.png

这两个工具安装好之后,便可以直接使用了,现在来试试去获取课程列表的那个页面,看看能不能加载出数据。

# -*- coding: UTF-8 -*-

from selenium import webdriver

chrome=webdriver.PhantomJS(executable_path="E:\phantomJs\phantomJs.exe")

chrome.get("https://www.icourse163.org/category/computer")

print(chrome.page_source)

# executable_path为你下载phantomjs的地址

# page_source为当前页面的源代码

于是现在源代码中便有了课程列表的信息

8fd257c7bf5e?from=singlemessage

image.png

有了课表列表页面的源代码后,我们就可以提取课程的Url地址,提取出Url地址后,就可以进行课表的详情页面,然后就可以随便拿课程的详细信息了。

二、解析课程列表页面的课表url地址

在python中有许多的解析网页源代码的库,如正则表达式、beautifulsoup、pyquery等,通过运行这些解析库,可以让我们更加方便的提取我们自己想要的数据。本次将使用pyquery库,pyquery库同样需要安装。

安装

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值