Selenium + Python + Chrome 中国大学慕课网视频爬取

准备放寒假啦,爬取一些MOOC上的课程爬回家去看。
爬取的课程是北京大学的离散数学概论

其实GitHub有可以直接用的程序 但是我半路出家 不怎么会提交HTTP请求 所以直接用selenium简单粗暴了。
网页解析我用的是BeautifulSoup。
思路其实很简单了,直接在课件网页里面把每一个chapter里的每一个lesson的所有unit里的视频都拿下来就可以了。所以就直接嵌套循环就OK了。在这里插入图片描述
遇到的一些困难:

  1. 课件部分的两个框都是隐藏的框,所以在模拟浏览器点击
    操作之前,都需要用JavaScript修改元素display的值
    在这里插入图片描述
    在这里插入图片描述
  2. 元素的id属性每一次点击都是不一样的,所以在定位元素的时候没有用id属性定位,用了title属性或者其他的属性。
  3. 另外就是 我没有办法用headless模式爬取网页,应该是我这边的环境问题,不知道各位有没有遇到这种情况。

代码:

# -*- coding:utf-8 -*-
import time
from selenium import webdriver
from bs4 import BeautifulSoup
import re
import json
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--disable-gpu")
browser = webdriver.Chrome(executable_path='G:\\chromedriver.exe', options=chrome_options)
browser.get('https://www.icourse163.org/learn/NJTU-1002530017#/learn/content?type=detail&id=1004513821')    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值