python极客学院爬虫_基于requests实现极客学院课程爬虫
#coding=utf-8
__author__ = 'scaleworld'
importrequestsimportreimportsys
reload(sys)
sys.setdefaultencoding("utf-8")classSpider:def __init__(self):print '开始爬取极客学院课程信息。。。'
#获取源代码
defgetSource(self, url):
html=requests.get(url)returnhtml.text#获取每个课程块信息
defgetLessons(self, source):
lessons= re.findall('deg="0" >(.*?)', source, re.S)returnlessons#获取课程信息,如课程名称、课程介绍、课程时间、课程等级、学习人数
defgetLessonInfo(self, lesson):
info={}
info['title'] = re.search('
(.*?)
', lesson, re.S).group(2).strip()
info['desc'] = re.search('
(.*?)
', lesson, re.S).group(1).strip()
timeandlevel= re.findall('(.*?)', lesson, re.S)
info['time'] = timeandlevel[0].strip().replace("\n", "").replace(" ", "")
info['level'] = timeandlevel[1].strip()
info['learnNumber'] = re.search('"learn-number">(.*?)', lesson, re.S).group(1).strip()returninfo#保存课程信息到文件LessionInfos.txt
defsaveLessionInfos(self, lessonInfos):#'w':只写,会覆盖之前写入的内容
#也可以用'a':追加到文件末尾
#如果文件不存在,则自动创建文件
f = open('LessionInfos.txt', 'w')
i=0for each inlessonInfos:
i+= 1f.writelines('第' + str(i) + '个课程:\n')
f.writelines('title:' + each['title'] + '\n')
f.writelines('desc:' + each['desc'] + '\n')
f.writelines('time:' + each['time'] + '\n')
f.writelines('level:' + each['level'] + '\n')
f.writelines('learnNumber:' + each['learnNumber'] + '\n\n')
f.close()if __name__ == '__main__':#定义课程信息数组
lessonInfos =[]#课程信息页面url
url = 'http://www.jikexueyuan.com/course/'
#实例化爬虫
spider =Spider()#取[1,21)及1到20页的课程信息
for i in range(1, 21):#构建分页URL
pageUrl = url + '?pageNum=' +str(i)print '正在处理页面:' +pageUrl
source=spider.getSource(pageUrl)
lessons=spider.getLessons(source)for lesson inlessons:
lessonInfo=spider.getLessonInfo(lesson)
lessonInfos.append(lessonInfo)#print 'title:'+lessonInfo.get('title')
#print 'desc:'+lessonInfo.get('desc')
#print 'time:'+lessonInfo.get('time')
#print 'level:'+lessonInfo.get('level')
#print 'learnNumber:'+lessonInfo.get('learnNumber')
print '已处理' + str(lessons.__len__()) + '个课程信息。'
print '极客学院课程信息爬取完毕,正在保存课程信息。。。'spider.saveLessionInfos(lessonInfos)print '极客学院课程信息保存完毕。'
python极客学院爬虫_基于requests实现极客学院课程爬虫相关推荐
- 爬虫系统基础框架 何时使用爬虫框架? requests库 + bs4来实现简单爬虫
转载请注明出处https://www.cnblogs.com/alexlee666/p/10180519.html,谢谢! 文中图片来自于我的简书博客. 一. 爬虫用途和本质: 网络爬虫顾名思义即模仿 ...
- python flask实现博客系统_基于Flask的博客网站设计与实现
涂远杰 郑剑 摘要:该博客系统是一款分享型博客,注重个人的学习心得.生活等方面的记录.后台基于Python中的Flask框架开发,还涉及爬虫,数据库使用的是轻型的SQLite,同时,前端页面的实现涉及 ...
- python重启路由器_Python3控制路由器——使用requests重启极路由.py
通过本文给大家介绍Python3控制路由器--使用requests重启极路由.py的相关知识,代码写了相应的注释,以后再写成可以方便调用的模块. 用fiddler抓包可以看到很多HTTP头,经过尝试发 ...
- 客制化键盘编程_基于3D打印的客制化机械键盘设计与实现
龙源期刊网 http://www.qikan.com.cn 基于 3D 打印的客制化机械键盘设计与实现 作者:许玺风 毛凌志 来源:<科学与财富> 2020 年第 03 期 摘 要:本文首 ...
- jsp+mysql汽车维修管理系统的设计与开发_基于JSP+MySQl的计算机学院设备报修管理系统.doc...
基于JSPMySQl的计算机学院设备报修管理系统 毕业设计 基于JSP+MySQl的计算机学院设备报修管理系统 大学 年6月 毕业设计 基于JSP+MySQl的计算机学院设备报修 管理系统 学 生: ...
- scrapy微博反爬虫_基于Scrapy的微博爬虫设计
Data Base Technique • 数据库技术 Electronic Technology & Software Engineering 电子技术与软件工程 • 187 [关键词]Sc ...
- 基于计算思维的python程序设计王彬丽期末考试题库_基于计算思维的程序设计类课程教学实践...
基于计算思维的程序设计类课程教学实践 滕剑锋 王玉锋 王 猛 刘二林 [摘 要] 摘 要 很多专业开设了程序设计类课程.如何在该课程教学中培养学 生的创新能力是大家普遍考虑的问题.计算思维的提出对于解 ...
- php博客系统答辩问题,基于PHP个人博客的设计与实现毕业设计答辩 PPT课件
<基于PHP个人博客的设计与实现毕业设计答辩 PPT课件>由会员分享,可在线阅读,更多相关<基于PHP个人博客的设计与实现毕业设计答辩 PPT课件(31页珍藏版)>请在人人文库 ...
- 单片机8位抢答器实训机电报告_基于单片机89c51八路抢答器课程设计报告.doc
基于单片机89c51八路抢答器课程设计报告 中州大学工程技术学院 单片机课程设计报告书 题目:基于单片机89c51 8路抢答器 姓 名: 阮成龙 专 业:电气自动化(对口)一班 学 号: 201425 ...
最新文章
- ASP.NET WebAPi之断点续传下载(下)
- linux 找不到动态链接库 .so文件的解决方法
- github添加图片
- build muduo网络库undefined reference to问题
- php检测类是否存在,php判断类是否存在函数class_exists用法分析
- PHP也能实现区块链?基础结构篇
- [PTA]L2-001 紧急救援 (25 分)
- python可变数据类型与不可变数据类型
- ssl2331OJ1373-鱼塘钓鱼 之1【纯贪心】
- android app功能测试,androidAPP功能测试要点幻灯片.pptx
- 简单类名转为class_13 网页各区域div的常见类名
- 第四章 《无冬之夜》
- 又挖到宝藏了,低调使用
- 机器视觉检测技术之颜色视觉工具应用
- 基于网络爬虫技术的网络新闻分析
- 计算机考研复试_数据库
- flutter 如何获取屏幕的尺寸
- linux下打包C++ Qt可执行程序出现的问题总结
- 4种FPGA时钟分频 【附源码】:1.偶数分频;2.奇数分频(占空比50%);3.奇数分频(任意无占空比);4.小数分频;
- SnowField目标效果2-6:斜面移动2更真实的斜坡
热门文章
- 3.HTML文本(标题、水平线、换行、加粗)
- python/folium绘制中国人口数量热力图(HeatMap)
- 表情可字怎么打_微信新表情十款默认上线,手把手教你用,吃瓜加油汗天啊Emm社会社会旺柴好的打脸哇...
- 湾区码农最IN的周末健康零食清单,好吃不长肉,简直不能太美!
- 基于 MaxCompute 的智能推荐解决方案
- 小米加密兔和百度莱茨狗怎么玩?莱茨狗和加密兔怎么注册
- win10下使用粘贴板历史记录
- Dymola求解器介绍
- 一、 计算机的体系结构
- educoder-Spark GraphX—寻找社交媒体中的“影响力用户”