【分享】使用爬虫获取CSDN学院里所有免费的视频课
2020-07-14 06:01
127 查看
大家好,我是Samaritan。
自学了一周爬虫,出于需求想在学院视频课里找找有没有适合学习的,发现找不到只看免费课的过滤器(也可能是我高度近视),于是就当练手,写了这个爬虫,希望能帮到和我一样需求的朋友。
好了,Talk is cheap,show you the code!
#爬取csdn学院中所有标注免费的视频课,并将标题和链接保存到txt里(默认路径为桌面) import requests from bs4 import BeautifulSoup as bts #使用两个爬虫最常用的库 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'} url = 'https://edu.csdn.net/course/index/p1?is_member=1&is_free=2' #创建请求头和需要爬取的url key ='免费' #设置爬取判定的关键字 res = requests.get(url,headers=headers) print(res.status_code) #检查响应状态 html = bts(res.text,'html.parser') page = html.find(class_="page-nav").find_all('a') count=[] #获得学院里要爬取课程的总页数,并创建个列表 for p in page: try: count.append(p.text) except: pass count.sort() pagemax = int(count[-1]) #将列表数字排序,得到最大页数 file = open(r'C:\Users\Raytine\Desktop\csdnfree.txt','w',encoding='utf-8') #创建文件(可以修改路径) for collect in range(pagemax): urlx = 'https://edu.csdn.net/course/index/p{}?is_member=1&is_free=2'.format(collect+1) #遍历得到了所有课程页面的url resx = requests.get(urlx, headers=headers) htmlx = bts(resx.text,'html.parser') soup = htmlx.find(class_="course_html course_card_list clearfix").find_all(class_="course_item") for i in soup: try: kind = i.find('i',class_="free").text.strip() if kind == key: #判断课程是否免费 title = i.find(class_="title ellipsis-2").text.strip() link =i.find('a') file.writelines('\n'+title+'\n'+link['href']+'\n') #将免费课程的标题和链接写入刚刚创建的文件 except: pass file.close() print('爬取成功!') #关闭文件,提示爬取成功,可以去查收了~
代码就到这里了,如果对你有用的话我会很开心~
欢迎和我差不多情况的朋友一起讨论python和爬虫,如有大佬不吝赐教,无比感谢。
相关文章推荐
- Swift - 使用ALAssetsLibrary获取相簿里所有图片,视频(附样例)
- 使用python为爬虫获取免费代理ip
- 【使用JSOUP实现网络爬虫】获取所有链接
- 【使用JSOUP实现网络爬虫】获取所有链接
- PHP实现使用优酷土豆视频地址获取swf播放器分享地址
- 分享录制的正则表达式入门、高阶以及使用 .NET 实现网络爬虫视频教程
- PHP实现使用优酷土豆视频地址获取swf播放器分享地址
- 500G python web、爬虫、数据分析、机器学习、大数据、前端实战项目视频代码免费分享
- 爬虫实战【12】使用cookie登陆豆瓣电影以及获取单个电影的所有短评
- SuperMap-AjaxMap应用1 使用TCPMap获取图形的所有坐标
- 超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大[转]
- 如何使用免费工具进行音/视频格式转化
- 学习资料分享——java视频教程及电子书免费下载
- C# 自动查找文件内容(正则使用、获取目录下所有文件、多线程、日志记录,文件操作)
- 使用JS通过雅虎的免费RSS服务获取气温
- C#遍历系统所安装的打印机,使用WMI方式获取打印机的所有属性
- 分享 使用普通笔记本电脑,DIY制作合成混音MTV视频,并上传分享的步骤
- Get Environment Strings by injection[使用dll注入来获取所有的环境变量包括临时环境变量]
- 如何获取使用某个table的所有存储过程
- android 获取手机中所有的传感器Sensor类使用方法