admin管理员组

文章数量:1026989

爬虫 正则表达式

库文件 re

符号

  • . : 匹配任意字符,换行符\n除外
    • :匹配前一个字符0次或无限次
  • ? :匹配前一个字符0次或1次
  • .*:贪心算法
  • .*?:非贪心算法
  • ():括号内的数据作为结果返回

方法

  • findall: 匹配所有符合规律的内容,返回包含结果的列表
  • Search:匹配并提取第一个符合规律的内容,返回一个正则表达式对象(object)
  • Sub:替换符合规律的内容,返回替换后的值
  • Search在找到要找的信息后就不会再向下找

知识点讲解

    import refrom re import findall, search, S  # 不推荐,到时候可能认不出来是哪个包的***************************************# .的使用举例a = 'xy123'b = re.findall('x...', a)print b  # ['xy12']***************************************# *的使用举例a = 'xyxy123'b = re.findall('x*',a)print b  # ['x', '', 'x', '', '', '', '', '']***************************************# ?的使用举例a = 'xy123'b = re.findall('x?', a)print b  # ['x', '', '', '', '', '']'''上面的内容全部都是只需要了解即可,需要掌握的只有下面这一种组合方式(.*?)'''secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'***************************************# .*的使用举例b = re.findall('xx.*xx', secret_code)print b  # ['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']***************************************# .*?的使用举例c = re.findall('xx.*?xx', secret_code)print c  # ['xxIxx', 'xxlovexx', 'xxyouxx']***************************************# (.*?)使用括号与不使用括号的差别d = re.findall('xx(.*?)xx', secret_code)print d  # ['I', 'love', 'you']for each in d:print each  # I love you***************************************# 有换行的情况下匹配s = '''sdfxxhelloxxfsdfxxworldxxasdf'''d = re.findall('xx(.*?)xx', s)print d  # ['fsdf']d = re.findall('xx(.*?)xx', s, re.S)print d  # ['hello\n', 'world']***************************************# 对比findall与search的区别s2 = 'asdfxxIxx123xxlovexxdfd'f = re.search('xx(.*?)xx123xx(.*?)xx', s2).group(2)print f  # love 匹配的是第几个括号f2 = re.findall('xx(.*?)xx123xx(.*?)xx', s2)print f2[0][1]  # love findall返回的是列表嵌套元组***************************************# sub的使用举例s = '123rrrrr123'output = re.sub('123(.*?)123', '123%d123' % 789, s)print output  # 123789123 找到并匹配***************************************# 不推荐使用compile 源代码里已经用了pattern = 'xx(.*?)xx'new_pattern = repile(pattern, re.S)output = re.findall(new_pattern, secret_code)print output***************************************# \d+匹配数字a = 'asdfasf1234567fasd555fas'b = re.findall('(\d+)', a)print b

测试用例

爬取简单文本

  • text.txt
    <html><head><title>极客学院爬虫测试</title></head><body><div class="topic"><a href=".html">欢迎参加《Python定向爬虫入门课程》</a><div class="list"><ul><li><a href=".html">这是第一条</a></li><li><a href=".html">这是第二条</a></li><li><a href=".html">这是第三条</a></li></ul></div></div></body></html>
  • 对上面的文本进行爬取
    import reold_url = '/?pageNum=2'total_page = 20f = open('text.txt', 'r')html = f.read()f.close()****************************************************# 爬取标题title = re.search('<title>(.*?)</title>', html, re.S).group(1)print title  # 极客学院爬虫测试****************************************************# 爬取链接links = re.findall('href="(.*?)"', html, re.S)for each in links:print each****************************************************# 抓取部分文字,先大再小text_fied = re.findall('<ul>(.*?)</ul>', html, re.S)[0]the_text = re.findall('">(.*?)</a>', text_fied, re.S)for every_text in the_text:every_text.encoding = 'utf-8'print every_text****************************************************# sub实现翻页for i in range(2, total_page + 1):new_link = re.sub('pageNum=\d+', 'pageNum=%d' % i, old_url, re.S)print new_link

爬取图片

  • 一段网页源代码
    <div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="C++ 简介及环境搭建" alt="C++ 简介及环境搭建" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="640" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">C++ 简介及环境搭建</a></h2><p>本课程讲解 C 和 C++ 的区别和联系;解析学习 C++ 不需要先学 C 的原因;阐述编...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  36分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="C++"  title="C++" /></a></div></div></div></div></li><li deg="" courseid="629"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap JavaScript 插件 - Bootstrap 中文网合作课程" alt="Bootstrap JavaScript 插件 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="629" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap JavaScript 插件 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap JavaScript 插件,掌握过渡效果、模态框、下...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>13课时  116分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="632"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 精选网站详解及制作 - Bootstrap 中文网合作课程" alt="Bootstrap 精选网站详解及制作 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="632" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 精选网站详解及制作 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要讲解由 Bootstrap 完成的精选网站的详解及制作,包含对网站的分析、Lo...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  47分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="626"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Go 表单" alt="Go 表单" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="626" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Go 表单</a></h2><p>本课程介绍在 Go 语言中处理表单数据。包括接收 Get 和 Post 方法提交的参数、验...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  16分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Go"  title="Go" /></a></div></div></div></div></li><li deg="" courseid="624"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 布局和导航" alt="WatchKit 布局和导航" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="624" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 布局和导航</a></h2><p>本课介绍 WatchKit 中布局和导航,包括布局中涉及到的 App Icon 尺寸、屏幕...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="603"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 基础知识简介" alt="WatchKit 基础知识简介" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="603" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 基础知识简介</a></h2><p>本课介绍最基础 WatchKit 框架包括 WatchKit App 和 WatchKit...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  18分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="595"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="苹果2015新产品发布会介绍" alt="苹果2015新产品发布会介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="595" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">苹果2015新产品发布会介绍</a></h2><p>本课根据苹果2015年3月10日的产品发布会总结而出,内容包括 AppleTV 介绍、iP...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  17分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="573"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS 实战项目开发:空气质量监测应用开发" alt="iOS 实战项目开发:空气质量监测应用开发" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="573" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS 实战项目开发:空气质量监测应用开发</a></h2><p>本课讲解如何使用网络上提供的空气质量API开发iOS应用,内容包括API介绍、使用play...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  19分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="646"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="科大讯飞 Android 平台新能力介绍" alt="科大讯飞 Android 平台新能力介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="646" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">科大讯飞 Android 平台新能力介绍</a></h2><p>本课程主要介绍科大讯飞 Android 平台新能力介绍,包括语音唤醒、声纹识别、人脸识别等...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  21分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="645"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="单点登录(SSO)基础篇" alt="单点登录(SSO)基础篇" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="645" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">单点登录(SSO)基础篇</a></h2><p>本课首先介绍SSO的体系结构与实现原理;然后以可支持同域系统整合的单点登录系统为例进行解析...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  130分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="J2EE"  title="J2EE" /></a></div></div></div></div></li><li deg="" courseid="644"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Servlet 过滤器" alt="Servlet 过滤器" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="644" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Servlet 过滤器</a></h2><p>本套课程介绍了 Servlet 的高级特性:过滤器,并通过两个过滤器实例讲解了过滤器的使用...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  47分钟</em></dd><dd class="zhongji"><i class="xinhao-icon2"></i><em>中级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="J2EE"  title="J2EE" /></a></div></div></div></div></li><li deg="" courseid="638"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="友盟社会化组件 Social-iOS SDK" alt="友盟社会化组件 Social-iOS SDK" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="638" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">友盟社会化组件 Social-iOS SDK</a></h2><p>本课程讲解友盟社会化组件的基本功能和第三方平台注册事项,并且通过代码直接演示 Social...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  20分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="639"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android UiAutomator UiWatcher API 详细介绍" alt="Android UiAutomator UiWatcher API 详细介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="639" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android UiAutomator UiWatcher API 详细介绍</a></h2><p>本课程介绍 UiAutomator 中 UiWatcher 类中 API 的使用与监听器的...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="640"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="C++ 简介及环境搭建" alt="C++ 简介及环境搭建" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="640" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">C++ 简介及环境搭建</a></h2><p>本课程讲解 C 和 C++ 的区别和联系;解析学习 C++ 不需要先学 C 的原因;阐述编...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  36分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="C++"  title="C++" /></a></div></div></div></div></li><li deg="" courseid="635"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Linux 用户和群组进阶学习" alt="Linux 用户和群组进阶学习" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="635" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Linux 用户和群组进阶学习</a></h2><p>本课程讲解 Linux 用户和群组的管理的知识,包括如何新建、修改删除用户和群组,以及默认...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>5课时  37分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Linux"  title="Linux" /></a></div></div></div></div></li><li deg="" courseid="637"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Photoshop 软件工作界面" alt="Photoshop 软件工作界面" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="637" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Photoshop 软件工作界面</a></h2><p>本课程将对 Photoshop 的应用领域做一个简单的介绍,为大家讲解 Photoshop...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  23分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Photoshop"  title="Photoshop" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="375"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 快速入门" alt="WatchKit 快速入门" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="375" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 快速入门</a></h2><p>本套课程讲解如何开发 Apple WatchApp,内容包括介绍 WatchKit、下载 ...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  18分钟</em></dd><dd class="zhongji"><i class="xinhao-icon2"></i><em>中级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li><li deg="" courseid="34"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Cocos2d-x游戏实战项目开发-Flappy Bird游戏" alt="Cocos2d-x游戏实战项目开发-Flappy Bird游戏" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="34" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Cocos2d-x游戏实战项目开发-Flappy Bird游戏</a></h2><p>本课程将全面剖析FLappy Bird,教你一小时完成开发。</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>7课时  70分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="88"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Windows平台下在VS2013中为Cocos2d-x3工程添加Box2D物理引擎支持库" alt="Windows平台下在VS2013中为Cocos2d-x3工程添加Box2D物理引擎支持库" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="88" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Windows平台下在VS2013中为Cocos2d-x3工程添加Box2D物理引擎支持库</a></h2><p>本课学习在Visual Studio环境下配置与使用Box2D物理引擎的方法</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>1课时  5分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="124"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="谷歌Material Design设计语言详解" alt="谷歌Material Design设计语言详解" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="124" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">谷歌Material Design设计语言详解</a></h2><p>本可讲解Material Design设计语言的规范、控件及规律。</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>16课时  84分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="134"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android二维码扫描功能的集成开发" alt="Android二维码扫描功能的集成开发" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="134" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android二维码扫描功能的集成开发</a></h2><p>本课讲解Android ZXing库的配置方法,调用ZXing库实现安卓扫描二维码和And...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  31分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="355"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android Wear 项目开发实战:图灵机器人" alt="Android Wear 项目开发实战:图灵机器人" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="355" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android Wear 项目开发实战:图灵机器人</a></h2><p>本课程从零开始手把手教大家如何使用图灵 API实现一个完整的 Android Wear版图...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>8课时  55分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a><a href="/"><img width="16" src=".png" alt="物联网操作系统"  title="物联网操作系统" /></a></div></div></div></div></li><li deg="" courseid="590"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="GDC 2015 游戏开发者大会 与 Unity 5.0 介绍" alt="GDC 2015 游戏开发者大会 与 Unity 5.0 介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="590" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">GDC 2015 游戏开发者大会 与 Unity 5.0 介绍</a></h2><p>2015年3月3日,Unity 官方在 GDC2015 大会上正式发布了迄今为止最强大的的...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>5课时  46分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Unity3D"  title="Unity3D" /></a></div></div></div></div></li><li deg="" courseid="527"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Open XML SDK 编程入门" alt="Open XML SDK 编程入门" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="527" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Open XML SDK 编程入门</a></h2><p>本课介绍 Open XML SDK 及相关的工具。 学习如何以编程和运行脚本工具的方式来生...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="442"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Cocos2d-x游戏实战项目开发:拼图游戏" alt="Cocos2d-x游戏实战项目开发:拼图游戏" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="442" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Cocos2d-x游戏实战项目开发:拼图游戏</a></h2><p>本课程通过指定纹理的区域来实现对一张图片的分割并制作成拼图游戏,所涉及到的知识点有纹理缓冲...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  26分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="445"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="微信智能客服机器人开发 Java 版" alt="微信智能客服机器人开发 Java 版" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="445" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">微信智能客服机器人开发 Java 版</a></h2><p>微信智能客服机器人,是基于微信公众平台开发而成,它能有效的解决人工客服效率低下的问题,做到...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  30分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Java"  title="Java" /></a></div></div></div></div></li><li deg="" courseid="492"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS实战项目开发:瀑布流" alt="iOS实战项目开发:瀑布流" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="492" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS实战项目开发:瀑布流</a></h2><p>本课通过完成瀑布流展示图片的实例来学习 UICollectionView 控件,了解控件的...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  29分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="451"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="HTML5开发项目实战:地铁计价器" alt="HTML5开发项目实战:地铁计价器" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="451" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">HTML5开发项目实战:地铁计价器</a></h2><p>本套课程主要了解地铁计价器的实现过程,包含布局、样式和算法及数据的整理。让学员掌握如何从零...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  69分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li><li deg="" courseid="498"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="网络公告墙项目实战(上)" alt="网络公告墙项目实战(上)" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="498" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">网络公告墙项目实战(上)</a></h2><p>本课程讲解了简化版 BBS 真实的开始过程。主要包含用户管理,公告管理。通过学习本课程,学...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>5课时  69分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Java"  title="Java" /></a></div></div></div></div></li><li deg="" courseid="504"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS实战项目开发:绘制小黄人" alt="iOS实战项目开发:绘制小黄人" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="504" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS实战项目开发:绘制小黄人</a></h2><p>本课利用绘制小黄人雏形的实例讲解 Quartz 2D 的绘图知识。包括基本图形如三角形、四...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  52分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="529"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Cocos2d-x游戏实战项目开发:记忆卡片" alt="Cocos2d-x游戏实战项目开发:记忆卡片" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="529" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Cocos2d-x游戏实战项目开发:记忆卡片</a></h2><p>本课程通过游戏需求的分析、结构的设计结合 Cocos2d-x 的功能来实现整个游戏并最终发...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>18课时  175分钟</em></dd><dd class="zhongji"><i class="xinhao-icon2"></i><em>中级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="391"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="HTML5开发项目实战:侧边栏固定" alt="HTML5开发项目实战:侧边栏固定" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="391" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">HTML5开发项目实战:侧边栏固定</a></h2><p>通过对定位的使用,监听滚动事件,在滚动判断中通过 JavaScript 或者 jQuery...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  26分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="624"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 布局和导航" alt="WatchKit 布局和导航" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="624" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 布局和导航</a></h2><p>本课介绍 WatchKit 中布局和导航,包括布局中涉及到的 App Icon 尺寸、屏幕...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="603"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 基础知识简介" alt="WatchKit 基础知识简介" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="603" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 基础知识简介</a></h2><p>本课介绍最基础 WatchKit 框架包括 WatchKit App 和 WatchKit...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  18分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="573"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS 实战项目开发:空气质量监测应用开发" alt="iOS 实战项目开发:空气质量监测应用开发" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="573" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS 实战项目开发:空气质量监测应用开发</a></h2><p>本课讲解如何使用网络上提供的空气质量API开发iOS应用,内容包括API介绍、使用play...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  19分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="577"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Meteor 入门指南" alt="Meteor 入门指南" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="577" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Meteor 入门指南</a></h2><p>本套课程首先对 Meteor 框架的功能及特点进行了介绍,然后讲解了如何安装 Meteor...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  13分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li><li deg="" courseid="595"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="苹果2015新产品发布会介绍" alt="苹果2015新产品发布会介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="595" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">苹果2015新产品发布会介绍</a></h2><p>本课根据苹果2015年3月10日的产品发布会总结而出,内容包括 AppleTV 介绍、iP...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  17分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="355"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android Wear 项目开发实战:图灵机器人" alt="Android Wear 项目开发实战:图灵机器人" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="355" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android Wear 项目开发实战:图灵机器人</a></h2><p>本课程从零开始手把手教大家如何使用图灵 API实现一个完整的 Android Wear版图...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>8课时  55分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a><a href="/"><img width="16" src=".png" alt="物联网操作系统"  title="物联网操作系统" /></a></div></div></div></div></li><li deg="" courseid="158"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="HTML5版围住神经猫游戏开发项目实战教程" alt="HTML5版围住神经猫游戏开发项目实战教程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="158" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">HTML5版围住神经猫游戏开发项目实战教程</a></h2><p>本课讲解CreateJS的应用以及神经猫游戏UI设计与事件处理和游戏算法。</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  70分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li><li deg="" courseid="364"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="使用Visual Studio 2015开发Android应用" alt="使用Visual Studio 2015开发Android应用" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="364" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">使用Visual Studio 2015开发Android应用</a></h2><p>本课讲解2014年微软 Connect(); 在线开发者大会上发布的新功能,.Net 开源...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  14分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="646"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="科大讯飞 Android 平台新能力介绍" alt="科大讯飞 Android 平台新能力介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="646" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">科大讯飞 Android 平台新能力介绍</a></h2><p>本课程主要介绍科大讯飞 Android 平台新能力介绍,包括语音唤醒、声纹识别、人脸识别等...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  21分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="638"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="友盟社会化组件 Social-iOS SDK" alt="友盟社会化组件 Social-iOS SDK" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="638" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">友盟社会化组件 Social-iOS SDK</a></h2><p>本课程讲解友盟社会化组件的基本功能和第三方平台注册事项,并且通过代码直接演示 Social...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  20分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="621"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="OneAPM 之应用性能分析工具" alt="OneAPM 之应用性能分析工具" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="621" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">OneAPM 之应用性能分析工具</a></h2><p>本课学习如何集成和使用 OneAPM SDK,通过 OneAPM SDK  收集应用性能...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  34分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="C#"  title="C#" /></a></div></div></div></div></li><li deg="" courseid="598"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="CloudStack 基础安装与配置" alt="CloudStack 基础安装与配置" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="598" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">CloudStack 基础安装与配置</a></h2><p>本课程介绍 CloudStack 最小化系统的搭建,相关准备工作,包括管理节点,存储节点,...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>7课时  67分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li><li deg="" courseid="589"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 组件(下)- Bootstrap 中文网合作课程" alt="Bootstrap 组件(下)- Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="589" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 组件(下)- Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap 组件,使用组件可以更加快速的完成页面效果,例如警告框...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>11课时  71分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="588"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 组件(上)- Bootstrap 中文网合作课程" alt="Bootstrap 组件(上)- Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="588" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 组件(上)- Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap 组件,使用组件可以更加快速的完成页面效果,例如警告框...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>11课时  83分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="587"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 全局 CSS 样式 - Bootstrap 中文网合作课程" alt="Bootstrap 全局 CSS 样式 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="587" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 全局 CSS 样式 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap 的全局 CSS 样式, 包含栅格系统,排版,代码,表...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>10课时  109分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="586"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 起步 - Bootstrap 中文网合作课程" alt="Bootstrap 起步 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="586" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 起步 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap,什么是 Bootstrap 以及基本的入门使用和对浏...</p><div class="timeandicon"><div class="cf"><dl>
  • 爬取上面的代码中的图片
    #-*-coding:utf8-*-import reimport requests#读取源代码文件f = open('source.txt','r')html = f.read()f.close()#匹配图片网址pic_url = re.findall('img src="(.*?)" class="lessonimg"',html,re.S)i = 0for each in pic_url:print 'now downloading:' + eachpic = requests.get(each)fp = open('pic\\' + str(i) + '.jpg','wb')fp.write(pic.content)fp.close()i += 1
  • 爬取异步加载的网站
    import requestsimport re# url = ''url = ';template=false'html = requests.get(url)print html.content# 注意这里的page后面跟的数字需要放到引号里面。# 那个网站好像没有异步加载的功能了,所以post和get功能一样了data = {'entities_only': 'true','page': '2'}html_post = requests.post(url, data=data)title = re.findall('"card-title">(.*?)</div>', html_post.text, re.S)for each in title:print each

 爬取网站课程信息 有bug

  • 爬取翻页网站的详细课程信息和选课信息
    #-*_coding:utf8-*-import requestsimport reimport sysreload(sys)sys.setdefaultencoding("utf-8")# 上面三行是为了解决windows命令行默认是GDK编码,而网站是UTF-8class spider(object):def __init__(self):print u'开始爬取内容。。。'#getsource用来获取网页源代码def getsource(self,url):html = requests.get(url)return html.text#changepage用来生产不同页数的链接def changepage(self,url,total_page):now_page = int(re.search('pageNum=(\d+)',url,re.S).group(1))page_group = []for i in range(now_page,total_page+1):link = re.sub('pageNum=\d+','pageNum=%s'%i,url,re.S)page_group.append(link)return page_group#geteveryclass用来抓取每个课程块的信息def geteveryclass(self,source):everyclass = re.findall('(<li deg="".*?</li>)',source,re.S)return everyclass#getinfo用来从每个课程块中提取出我们需要的信息def getinfo(self,eachclass):info = {}info['title'] = re.search('target="_blank">(.*?)</a>',eachclass,re.S).group(1)info['content'] = re.search('</h2><p>(.*?)</p>',eachclass,re.S).group(1)timeandlevel = re.findall('<em>(.*?)</em>',eachclass,re.S)info['classtime'] = timeandlevel[0]info['classlevel'] = timeandlevel[1]info['learnnum'] = re.search('"learn-number">(.*?)</em>',eachclass,re.S).group(1)return info#saveinfo用来保存结果到info.txt文件中def saveinfo(self,classinfo):f = open('info.txt','a')for each in classinfo:f.writelines('title:' + each['title'] + '\n')f.writelines('content:' + each['content'] + '\n')f.writelines('classtime:' + each['classtime'] + '\n')f.writelines('classlevel:' + each['classlevel'] + '\n')f.writelines('learnnum:' + each['learnnum'] +'\n\n')f.close()if __name__ == '__main__':classinfo = []url = '/?pageNum=1'jikespider = spider()all_links = jikespider.changepage(url,20)for link in all_links:print u'正在处理页面:' + linkhtml = jikespider.getsource(link)everyclass = jikespider.geteveryclass(html)for each in everyclass:info = jikespider.getinfo(each)classinfo.append(info)jikespider.saveinfo(classinfo)

爬虫 正则表达式

库文件 re

符号

  • . : 匹配任意字符,换行符\n除外
    • :匹配前一个字符0次或无限次
  • ? :匹配前一个字符0次或1次
  • .*:贪心算法
  • .*?:非贪心算法
  • ():括号内的数据作为结果返回

方法

  • findall: 匹配所有符合规律的内容,返回包含结果的列表
  • Search:匹配并提取第一个符合规律的内容,返回一个正则表达式对象(object)
  • Sub:替换符合规律的内容,返回替换后的值
  • Search在找到要找的信息后就不会再向下找

知识点讲解

    import refrom re import findall, search, S  # 不推荐,到时候可能认不出来是哪个包的***************************************# .的使用举例a = 'xy123'b = re.findall('x...', a)print b  # ['xy12']***************************************# *的使用举例a = 'xyxy123'b = re.findall('x*',a)print b  # ['x', '', 'x', '', '', '', '', '']***************************************# ?的使用举例a = 'xy123'b = re.findall('x?', a)print b  # ['x', '', '', '', '', '']'''上面的内容全部都是只需要了解即可,需要掌握的只有下面这一种组合方式(.*?)'''secret_code = 'hadkfalifexxIxxfasdjifja134xxlovexx23345sdfxxyouxx8dfse'***************************************# .*的使用举例b = re.findall('xx.*xx', secret_code)print b  # ['xxIxxfasdjifja134xxlovexx23345sdfxxyouxx']***************************************# .*?的使用举例c = re.findall('xx.*?xx', secret_code)print c  # ['xxIxx', 'xxlovexx', 'xxyouxx']***************************************# (.*?)使用括号与不使用括号的差别d = re.findall('xx(.*?)xx', secret_code)print d  # ['I', 'love', 'you']for each in d:print each  # I love you***************************************# 有换行的情况下匹配s = '''sdfxxhelloxxfsdfxxworldxxasdf'''d = re.findall('xx(.*?)xx', s)print d  # ['fsdf']d = re.findall('xx(.*?)xx', s, re.S)print d  # ['hello\n', 'world']***************************************# 对比findall与search的区别s2 = 'asdfxxIxx123xxlovexxdfd'f = re.search('xx(.*?)xx123xx(.*?)xx', s2).group(2)print f  # love 匹配的是第几个括号f2 = re.findall('xx(.*?)xx123xx(.*?)xx', s2)print f2[0][1]  # love findall返回的是列表嵌套元组***************************************# sub的使用举例s = '123rrrrr123'output = re.sub('123(.*?)123', '123%d123' % 789, s)print output  # 123789123 找到并匹配***************************************# 不推荐使用compile 源代码里已经用了pattern = 'xx(.*?)xx'new_pattern = repile(pattern, re.S)output = re.findall(new_pattern, secret_code)print output***************************************# \d+匹配数字a = 'asdfasf1234567fasd555fas'b = re.findall('(\d+)', a)print b

测试用例

爬取简单文本

  • text.txt
    <html><head><title>极客学院爬虫测试</title></head><body><div class="topic"><a href=".html">欢迎参加《Python定向爬虫入门课程》</a><div class="list"><ul><li><a href=".html">这是第一条</a></li><li><a href=".html">这是第二条</a></li><li><a href=".html">这是第三条</a></li></ul></div></div></body></html>
  • 对上面的文本进行爬取
    import reold_url = '/?pageNum=2'total_page = 20f = open('text.txt', 'r')html = f.read()f.close()****************************************************# 爬取标题title = re.search('<title>(.*?)</title>', html, re.S).group(1)print title  # 极客学院爬虫测试****************************************************# 爬取链接links = re.findall('href="(.*?)"', html, re.S)for each in links:print each****************************************************# 抓取部分文字,先大再小text_fied = re.findall('<ul>(.*?)</ul>', html, re.S)[0]the_text = re.findall('">(.*?)</a>', text_fied, re.S)for every_text in the_text:every_text.encoding = 'utf-8'print every_text****************************************************# sub实现翻页for i in range(2, total_page + 1):new_link = re.sub('pageNum=\d+', 'pageNum=%d' % i, old_url, re.S)print new_link

爬取图片

  • 一段网页源代码
    <div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="C++ 简介及环境搭建" alt="C++ 简介及环境搭建" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="640" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">C++ 简介及环境搭建</a></h2><p>本课程讲解 C 和 C++ 的区别和联系;解析学习 C++ 不需要先学 C 的原因;阐述编...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  36分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="C++"  title="C++" /></a></div></div></div></div></li><li deg="" courseid="629"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap JavaScript 插件 - Bootstrap 中文网合作课程" alt="Bootstrap JavaScript 插件 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="629" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap JavaScript 插件 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap JavaScript 插件,掌握过渡效果、模态框、下...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>13课时  116分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="632"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 精选网站详解及制作 - Bootstrap 中文网合作课程" alt="Bootstrap 精选网站详解及制作 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="632" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 精选网站详解及制作 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要讲解由 Bootstrap 完成的精选网站的详解及制作,包含对网站的分析、Lo...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  47分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="626"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Go 表单" alt="Go 表单" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="626" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Go 表单</a></h2><p>本课程介绍在 Go 语言中处理表单数据。包括接收 Get 和 Post 方法提交的参数、验...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  16分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Go"  title="Go" /></a></div></div></div></div></li><li deg="" courseid="624"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 布局和导航" alt="WatchKit 布局和导航" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="624" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 布局和导航</a></h2><p>本课介绍 WatchKit 中布局和导航,包括布局中涉及到的 App Icon 尺寸、屏幕...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="603"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 基础知识简介" alt="WatchKit 基础知识简介" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="603" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 基础知识简介</a></h2><p>本课介绍最基础 WatchKit 框架包括 WatchKit App 和 WatchKit...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  18分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="595"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="苹果2015新产品发布会介绍" alt="苹果2015新产品发布会介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="595" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">苹果2015新产品发布会介绍</a></h2><p>本课根据苹果2015年3月10日的产品发布会总结而出,内容包括 AppleTV 介绍、iP...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  17分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="573"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS 实战项目开发:空气质量监测应用开发" alt="iOS 实战项目开发:空气质量监测应用开发" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="573" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS 实战项目开发:空气质量监测应用开发</a></h2><p>本课讲解如何使用网络上提供的空气质量API开发iOS应用,内容包括API介绍、使用play...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  19分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="646"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="科大讯飞 Android 平台新能力介绍" alt="科大讯飞 Android 平台新能力介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="646" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">科大讯飞 Android 平台新能力介绍</a></h2><p>本课程主要介绍科大讯飞 Android 平台新能力介绍,包括语音唤醒、声纹识别、人脸识别等...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  21分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="645"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="单点登录(SSO)基础篇" alt="单点登录(SSO)基础篇" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="645" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">单点登录(SSO)基础篇</a></h2><p>本课首先介绍SSO的体系结构与实现原理;然后以可支持同域系统整合的单点登录系统为例进行解析...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  130分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="J2EE"  title="J2EE" /></a></div></div></div></div></li><li deg="" courseid="644"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Servlet 过滤器" alt="Servlet 过滤器" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="644" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Servlet 过滤器</a></h2><p>本套课程介绍了 Servlet 的高级特性:过滤器,并通过两个过滤器实例讲解了过滤器的使用...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  47分钟</em></dd><dd class="zhongji"><i class="xinhao-icon2"></i><em>中级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="J2EE"  title="J2EE" /></a></div></div></div></div></li><li deg="" courseid="638"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="友盟社会化组件 Social-iOS SDK" alt="友盟社会化组件 Social-iOS SDK" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="638" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">友盟社会化组件 Social-iOS SDK</a></h2><p>本课程讲解友盟社会化组件的基本功能和第三方平台注册事项,并且通过代码直接演示 Social...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  20分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="639"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android UiAutomator UiWatcher API 详细介绍" alt="Android UiAutomator UiWatcher API 详细介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="639" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android UiAutomator UiWatcher API 详细介绍</a></h2><p>本课程介绍 UiAutomator 中 UiWatcher 类中 API 的使用与监听器的...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="640"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="C++ 简介及环境搭建" alt="C++ 简介及环境搭建" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="640" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">C++ 简介及环境搭建</a></h2><p>本课程讲解 C 和 C++ 的区别和联系;解析学习 C++ 不需要先学 C 的原因;阐述编...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  36分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="C++"  title="C++" /></a></div></div></div></div></li><li deg="" courseid="635"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Linux 用户和群组进阶学习" alt="Linux 用户和群组进阶学习" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="635" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Linux 用户和群组进阶学习</a></h2><p>本课程讲解 Linux 用户和群组的管理的知识,包括如何新建、修改删除用户和群组,以及默认...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>5课时  37分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Linux"  title="Linux" /></a></div></div></div></div></li><li deg="" courseid="637"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Photoshop 软件工作界面" alt="Photoshop 软件工作界面" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="637" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Photoshop 软件工作界面</a></h2><p>本课程将对 Photoshop 的应用领域做一个简单的介绍,为大家讲解 Photoshop...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  23分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Photoshop"  title="Photoshop" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="375"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 快速入门" alt="WatchKit 快速入门" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="375" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 快速入门</a></h2><p>本套课程讲解如何开发 Apple WatchApp,内容包括介绍 WatchKit、下载 ...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  18分钟</em></dd><dd class="zhongji"><i class="xinhao-icon2"></i><em>中级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li><li deg="" courseid="34"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Cocos2d-x游戏实战项目开发-Flappy Bird游戏" alt="Cocos2d-x游戏实战项目开发-Flappy Bird游戏" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="34" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Cocos2d-x游戏实战项目开发-Flappy Bird游戏</a></h2><p>本课程将全面剖析FLappy Bird,教你一小时完成开发。</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>7课时  70分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="88"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Windows平台下在VS2013中为Cocos2d-x3工程添加Box2D物理引擎支持库" alt="Windows平台下在VS2013中为Cocos2d-x3工程添加Box2D物理引擎支持库" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="88" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Windows平台下在VS2013中为Cocos2d-x3工程添加Box2D物理引擎支持库</a></h2><p>本课学习在Visual Studio环境下配置与使用Box2D物理引擎的方法</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>1课时  5分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="124"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="谷歌Material Design设计语言详解" alt="谷歌Material Design设计语言详解" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="124" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">谷歌Material Design设计语言详解</a></h2><p>本可讲解Material Design设计语言的规范、控件及规律。</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>16课时  84分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="134"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android二维码扫描功能的集成开发" alt="Android二维码扫描功能的集成开发" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="134" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android二维码扫描功能的集成开发</a></h2><p>本课讲解Android ZXing库的配置方法,调用ZXing库实现安卓扫描二维码和And...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  31分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="355"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android Wear 项目开发实战:图灵机器人" alt="Android Wear 项目开发实战:图灵机器人" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="355" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android Wear 项目开发实战:图灵机器人</a></h2><p>本课程从零开始手把手教大家如何使用图灵 API实现一个完整的 Android Wear版图...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>8课时  55分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a><a href="/"><img width="16" src=".png" alt="物联网操作系统"  title="物联网操作系统" /></a></div></div></div></div></li><li deg="" courseid="590"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="GDC 2015 游戏开发者大会 与 Unity 5.0 介绍" alt="GDC 2015 游戏开发者大会 与 Unity 5.0 介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="590" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">GDC 2015 游戏开发者大会 与 Unity 5.0 介绍</a></h2><p>2015年3月3日,Unity 官方在 GDC2015 大会上正式发布了迄今为止最强大的的...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>5课时  46分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Unity3D"  title="Unity3D" /></a></div></div></div></div></li><li deg="" courseid="527"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Open XML SDK 编程入门" alt="Open XML SDK 编程入门" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="527" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Open XML SDK 编程入门</a></h2><p>本课介绍 Open XML SDK 及相关的工具。 学习如何以编程和运行脚本工具的方式来生...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="442"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Cocos2d-x游戏实战项目开发:拼图游戏" alt="Cocos2d-x游戏实战项目开发:拼图游戏" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="442" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Cocos2d-x游戏实战项目开发:拼图游戏</a></h2><p>本课程通过指定纹理的区域来实现对一张图片的分割并制作成拼图游戏,所涉及到的知识点有纹理缓冲...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  26分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="445"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="微信智能客服机器人开发 Java 版" alt="微信智能客服机器人开发 Java 版" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="445" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">微信智能客服机器人开发 Java 版</a></h2><p>微信智能客服机器人,是基于微信公众平台开发而成,它能有效的解决人工客服效率低下的问题,做到...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  30分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Java"  title="Java" /></a></div></div></div></div></li><li deg="" courseid="492"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS实战项目开发:瀑布流" alt="iOS实战项目开发:瀑布流" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="492" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS实战项目开发:瀑布流</a></h2><p>本课通过完成瀑布流展示图片的实例来学习 UICollectionView 控件,了解控件的...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  29分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="451"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="HTML5开发项目实战:地铁计价器" alt="HTML5开发项目实战:地铁计价器" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="451" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">HTML5开发项目实战:地铁计价器</a></h2><p>本套课程主要了解地铁计价器的实现过程,包含布局、样式和算法及数据的整理。让学员掌握如何从零...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  69分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li><li deg="" courseid="498"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="网络公告墙项目实战(上)" alt="网络公告墙项目实战(上)" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="498" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">网络公告墙项目实战(上)</a></h2><p>本课程讲解了简化版 BBS 真实的开始过程。主要包含用户管理,公告管理。通过学习本课程,学...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>5课时  69分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Java"  title="Java" /></a></div></div></div></div></li><li deg="" courseid="504"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS实战项目开发:绘制小黄人" alt="iOS实战项目开发:绘制小黄人" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="504" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS实战项目开发:绘制小黄人</a></h2><p>本课利用绘制小黄人雏形的实例讲解 Quartz 2D 的绘图知识。包括基本图形如三角形、四...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  52分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="529"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Cocos2d-x游戏实战项目开发:记忆卡片" alt="Cocos2d-x游戏实战项目开发:记忆卡片" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="529" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Cocos2d-x游戏实战项目开发:记忆卡片</a></h2><p>本课程通过游戏需求的分析、结构的设计结合 Cocos2d-x 的功能来实现整个游戏并最终发...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>18课时  175分钟</em></dd><dd class="zhongji"><i class="xinhao-icon2"></i><em>中级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Cocos2d-x"  title="Cocos2d-x" /></a></div></div></div></div></li><li deg="" courseid="391"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="HTML5开发项目实战:侧边栏固定" alt="HTML5开发项目实战:侧边栏固定" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="391" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">HTML5开发项目实战:侧边栏固定</a></h2><p>通过对定位的使用,监听滚动事件,在滚动判断中通过 JavaScript 或者 jQuery...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  26分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="624"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 布局和导航" alt="WatchKit 布局和导航" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="624" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 布局和导航</a></h2><p>本课介绍 WatchKit 中布局和导航,包括布局中涉及到的 App Icon 尺寸、屏幕...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  25分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="603"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="WatchKit 基础知识简介" alt="WatchKit 基础知识简介" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="603" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">WatchKit 基础知识简介</a></h2><p>本课介绍最基础 WatchKit 框架包括 WatchKit App 和 WatchKit...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  18分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="573"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="iOS 实战项目开发:空气质量监测应用开发" alt="iOS 实战项目开发:空气质量监测应用开发" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="573" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">iOS 实战项目开发:空气质量监测应用开发</a></h2><p>本课讲解如何使用网络上提供的空气质量API开发iOS应用,内容包括API介绍、使用play...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  19分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="577"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Meteor 入门指南" alt="Meteor 入门指南" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="577" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Meteor 入门指南</a></h2><p>本套课程首先对 Meteor 框架的功能及特点进行了介绍,然后讲解了如何安装 Meteor...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  13分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li><li deg="" courseid="595"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="苹果2015新产品发布会介绍" alt="苹果2015新产品发布会介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="595" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">苹果2015新产品发布会介绍</a></h2><p>本课根据苹果2015年3月10日的产品发布会总结而出,内容包括 AppleTV 介绍、iP...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  17分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="355"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Android Wear 项目开发实战:图灵机器人" alt="Android Wear 项目开发实战:图灵机器人" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="355" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Android Wear 项目开发实战:图灵机器人</a></h2><p>本课程从零开始手把手教大家如何使用图灵 API实现一个完整的 Android Wear版图...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>8课时  55分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a><a href="/"><img width="16" src=".png" alt="物联网操作系统"  title="物联网操作系统" /></a></div></div></div></div></li><li deg="" courseid="158"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="HTML5版围住神经猫游戏开发项目实战教程" alt="HTML5版围住神经猫游戏开发项目实战教程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="158" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">HTML5版围住神经猫游戏开发项目实战教程</a></h2><p>本课讲解CreateJS的应用以及神经猫游戏UI设计与事件处理和游戏算法。</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>6课时  70分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li><li deg="" courseid="364"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="使用Visual Studio 2015开发Android应用" alt="使用Visual Studio 2015开发Android应用" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="364" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">使用Visual Studio 2015开发Android应用</a></h2><p>本课讲解2014年微软 Connect(); 在线开发者大会上发布的新功能,.Net 开源...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  14分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a><a href="/"><img width="16" src=".png" alt="HTML5"  title="HTML5" /></a></div></div></div></div></li></ul></div></div><div id="hot-lessonbox" class="mar-t20 w-1000"><div class="one-classfiy-lesson lesson-list" style="display:none;"><ul class="cf"><li deg="" courseid="646"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="科大讯飞 Android 平台新能力介绍" alt="科大讯飞 Android 平台新能力介绍" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="646" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">科大讯飞 Android 平台新能力介绍</a></h2><p>本课程主要介绍科大讯飞 Android 平台新能力介绍,包括语音唤醒、声纹识别、人脸识别等...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  21分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Android"  title="Android" /></a></div></div></div></div></li><li deg="" courseid="638"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="友盟社会化组件 Social-iOS SDK" alt="友盟社会化组件 Social-iOS SDK" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="638" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">友盟社会化组件 Social-iOS SDK</a></h2><p>本课程讲解友盟社会化组件的基本功能和第三方平台注册事项,并且通过代码直接演示 Social...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>3课时  20分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="iOS"  title="iOS" /></a></div></div></div></div></li><li deg="" courseid="621"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="OneAPM 之应用性能分析工具" alt="OneAPM 之应用性能分析工具" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="621" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">OneAPM 之应用性能分析工具</a></h2><p>本课学习如何集成和使用 OneAPM SDK,通过 OneAPM SDK  收集应用性能...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>4课时  34分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="C#"  title="C#" /></a></div></div></div></div></li><li deg="" courseid="598"><div class="lessonimg-box"><i class="free-icon"></i><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="CloudStack 基础安装与配置" alt="CloudStack 基础安装与配置" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="598" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">CloudStack 基础安装与配置</a></h2><p>本课程介绍 CloudStack 最小化系统的搭建,相关准备工作,包括管理节点,存储节点,...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>7课时  67分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="新酷技术"  title="新酷技术" /></a></div></div></div></div></li><li deg="" courseid="589"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 组件(下)- Bootstrap 中文网合作课程" alt="Bootstrap 组件(下)- Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="589" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 组件(下)- Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap 组件,使用组件可以更加快速的完成页面效果,例如警告框...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>11课时  71分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="588"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 组件(上)- Bootstrap 中文网合作课程" alt="Bootstrap 组件(上)- Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="588" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 组件(上)- Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap 组件,使用组件可以更加快速的完成页面效果,例如警告框...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>11课时  83分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="587"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 全局 CSS 样式 - Bootstrap 中文网合作课程" alt="Bootstrap 全局 CSS 样式 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="587" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 全局 CSS 样式 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap 的全局 CSS 样式, 包含栅格系统,排版,代码,表...</p><div class="timeandicon"><div class="cf"><dl><dd class="mar-b8"><i class="time-icon"></i><em>10课时  109分钟</em></dd><dd class="zhongji"><i class="xinhao-icon"></i><em>初级</em></dd></dl></div><div class="cf"><div class="lessonicon-box"><a href="/"><img width="16" src=".png" alt="Bootstrap"  title="Bootstrap" /></a></div></div></div></div></li><li deg="" courseid="586"><div class="lessonimg-box"><a href=".html" target="_blank" ><img src=".jpg" class="lessonimg" title="Bootstrap 起步 - Bootstrap 中文网合作课程" alt="Bootstrap 起步 - Bootstrap 中文网合作课程" /><div class="lessonplay"><i class="playericon"></i></div></a><img class="cancel-favorites cancel-stop user-action" src=".png" mid="1" oid="586" s="1" clsy="" clsn="" oper="favorites" id="do_favorit" style="display:none;" /></div><div class="lesson-infor"><h2 class="lesson-info-h2"><a href=".html"  target="_blank">Bootstrap 起步 - Bootstrap 中文网合作课程</a></h2><p>本套课程主要了解 Bootstrap,什么是 Bootstrap 以及基本的入门使用和对浏...</p><div class="timeandicon"><div class="cf"><dl>
  • 爬取上面的代码中的图片
    #-*-coding:utf8-*-import reimport requests#读取源代码文件f = open('source.txt','r')html = f.read()f.close()#匹配图片网址pic_url = re.findall('img src="(.*?)" class="lessonimg"',html,re.S)i = 0for each in pic_url:print 'now downloading:' + eachpic = requests.get(each)fp = open('pic\\' + str(i) + '.jpg','wb')fp.write(pic.content)fp.close()i += 1
  • 爬取异步加载的网站
    import requestsimport re# url = ''url = ';template=false'html = requests.get(url)print html.content# 注意这里的page后面跟的数字需要放到引号里面。# 那个网站好像没有异步加载的功能了,所以post和get功能一样了data = {'entities_only': 'true','page': '2'}html_post = requests.post(url, data=data)title = re.findall('"card-title">(.*?)</div>', html_post.text, re.S)for each in title:print each

 爬取网站课程信息 有bug

  • 爬取翻页网站的详细课程信息和选课信息
    #-*_coding:utf8-*-import requestsimport reimport sysreload(sys)sys.setdefaultencoding("utf-8")# 上面三行是为了解决windows命令行默认是GDK编码,而网站是UTF-8class spider(object):def __init__(self):print u'开始爬取内容。。。'#getsource用来获取网页源代码def getsource(self,url):html = requests.get(url)return html.text#changepage用来生产不同页数的链接def changepage(self,url,total_page):now_page = int(re.search('pageNum=(\d+)',url,re.S).group(1))page_group = []for i in range(now_page,total_page+1):link = re.sub('pageNum=\d+','pageNum=%s'%i,url,re.S)page_group.append(link)return page_group#geteveryclass用来抓取每个课程块的信息def geteveryclass(self,source):everyclass = re.findall('(<li deg="".*?</li>)',source,re.S)return everyclass#getinfo用来从每个课程块中提取出我们需要的信息def getinfo(self,eachclass):info = {}info['title'] = re.search('target="_blank">(.*?)</a>',eachclass,re.S).group(1)info['content'] = re.search('</h2><p>(.*?)</p>',eachclass,re.S).group(1)timeandlevel = re.findall('<em>(.*?)</em>',eachclass,re.S)info['classtime'] = timeandlevel[0]info['classlevel'] = timeandlevel[1]info['learnnum'] = re.search('"learn-number">(.*?)</em>',eachclass,re.S).group(1)return info#saveinfo用来保存结果到info.txt文件中def saveinfo(self,classinfo):f = open('info.txt','a')for each in classinfo:f.writelines('title:' + each['title'] + '\n')f.writelines('content:' + each['content'] + '\n')f.writelines('classtime:' + each['classtime'] + '\n')f.writelines('classlevel:' + each['classlevel'] + '\n')f.writelines('learnnum:' + each['learnnum'] +'\n\n')f.close()if __name__ == '__main__':classinfo = []url = '/?pageNum=1'jikespider = spider()all_links = jikespider.changepage(url,20)for link in all_links:print u'正在处理页面:' + linkhtml = jikespider.getsource(link)everyclass = jikespider.geteveryclass(html)for each in everyclass:info = jikespider.getinfo(each)classinfo.append(info)jikespider.saveinfo(classinfo)

本文标签: 爬虫 正则表达式