《解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫》课程教学大纲(课程英文名称)课程编号:201800522062学分:5学分学时:53学时(其中:讲课学时41上机学时:12)先修课程:《Python快速编程入门》后续课程:Python数据分析与数据挖掘适用专业:信息技术及其计算机相关专业开课部门:计算机系一、课程的性质与目标《解析Python网络爬虫:核心技术、Scrapy框架、分布式爬虫》是面向计算机相关专业的一门专业进阶课,涉及抓取网页数据、数据解析、并发下载、抓取动态网页、图像识别与文字处理、存储爬虫数据、爬虫框架、分布式爬虫.
通过本课程的学习,学生能够掌握Python爬虫的基础知识,可以独立使用框架开发Python爬虫的项目程序.
二、教学条件要求操作系统:Windows7版本及以上Python环境:Python3.
6.
2开发工具:PyCharm2016.
3.
2三、课程的主要内容及基本要求第1章初识爬虫章名初识爬虫学时1学习目标1.
了解爬虫产生的背景2.
知道什么是爬虫3.
了解爬虫的用途4.
熟悉不同维度下网络爬虫的几种类型知识点了解掌握重点难点爬虫产生背景√什么是爬虫√√爬虫的用途√爬虫的分类√√√第2章爬虫的实现原理和技术章名爬虫的实现原理和技术学时4学习目标1.
掌握通用爬虫和聚焦爬虫的工作原理2.
熟悉爬虫抓取网页的流程3.
了解通用爬虫的网页分类,4.
了解爬虫要遵守的协议,及智能抓取更新网页的文件5.
熟悉防爬虫的一些应对策略6.
了解使用Python语言做爬虫的优势知识点了解掌握重点难点通用爬虫工作原理√√聚焦爬虫工作原理√√爬虫抓取网页的详细流程√通用爬虫中网页的分类√robots.
txt文件√Sitemap.
xml文件√防爬虫应对策略√√为什么选择Python做爬虫√第3章网页请求原理章名网页请求原理学时3学习目标1.
熟悉浏览器加载网页的过程2.
掌握基于HTTP协议的请求原理3.
掌握客户端HTTP请求格式4.
掌握服务端HTTP响应格式5.
熟悉HTTP抓包工具Fiddler的使用知识点了解掌握重点难点统一资源定位符URL√计算机域名系统DNS√分析浏览器显示完整网页的过程√√客户端HTTP请求格式√√√服务端HTTP响应格式√√√Fiddler工作原理√Fiddler下载安装√Fiddler界面详解√Fiddler抓取HTTPS设置√使用Fiddler捕获Chrome的会话√第4章抓取网页数据章名抓取网页数据学时6学习目标1.
了解什么是urllib库2.
会使用urllib库爬取网页3.
掌握如何转换URL编码,可以使用GET和POST两种方式实现数据传输4.
知道伪装浏览器的用途5.
掌握如何自定义opener6.
了解服务器的超时7.
熟悉一些常见的网络异常8.
掌握requests库的使用知识点了解掌握重点难点什么是urllib库√快速爬取一个网页√分析urlopen方法√使用HTTPResponse对象√构造Request对象√URL编码转换√处理GET请求√√处理POST请求√√√添加特定Headers√√简单的自定义opener√√设置代理服务器√√超时设置√URLError异常和捕获√HttpError异常和捕获√什么是requests库√使用requests发送请求√√返回Response响应√√第5章数据解析章名数据解析学时8学习目标1.
了解服务器返回的数据格式2.
会通过浏览器查看网页的结构3.
熟悉解析数据的几种技术4.
掌握正则表达式的使用,会使用re模块解析网页数据5.
掌握XPath语法的使用,会使用lxml库解析网页数据6.
掌握BeautifulSoup的使用,会使用bs4库解析网页数据7.
掌握JSONPath语法的使用,会使用json模块解析网页数据知识点了解掌握重点难点网页数据格式√查看网页结构√数据解析技术√正则表达式√√什么是XPath√XPath语法√√XPath开发工具√什么是lxml库√√lxml库的基本使用√√√什么是BeautifulSoup√构建BeautifulSoup对象√通过操作方法进行解读搜索√√√通过CSS选择器进行搜索√√什么是JSON√JSON与XML语言比较√json模块介绍√json模块基本使用√√√JSONPath介绍√JSONPath语法对比√第6章并发下载章名并发下载学时3学习目标1.
了解多线程爬虫的流程2.
掌握queue模块的使用,可以利用它实现多线程爬虫3.
熟悉协程的使用,能够用协程技术实现并发爬虫知识点了解掌握重点难点多线程爬虫流程分析√√queue(队列)模块简介√Queue类简介√√协程爬虫的流程分析√√第三方库gevent√√第7章抓取动态内容章名抓取动态内容学时4学习目标1.
知道什么是动态网页2.
掌握抓取动态网页的selenium和PhantomJS技术,学会安装和配置它们3.
掌握selenium和PhantomJS的基本使用知识点了解掌握重点难点动态网页介绍√selenium和PhantomJS概述√selenium和PhantomJS安装配置√√入门操作√√√定位UI元素√√鼠标动作链√填充表单√√弹窗处理√页面切换√页面前进和后退√获取页面Cookies√页面等待√√第8章图像识别与文字处理章名图像识别与文字处理学时4学习目标1.
了解什么是OCR技术2.
会安装Tesseract工具3.
熟悉PIL和pytesseract库4.
知道什么是文字规范的图像,能够利用pytesseract识别和处理字符5.
了解验证码的分类,能够利用pytesseract识别简单的图形验证码知识点了解掌握重点难点OCR技术简介√Tesseract引擎的下载和安装√pytesseract库简介√PIL库简介√处理图像中格式规范的文字√√对图片进行阈值过滤和降噪处理√√√识别图像的中文字符√√√验证码分类√简单识别图形验证码√第9章存储爬虫数据章名存储爬虫数据学时4学习目标1.
熟悉数据存储的几种方式2.
了解什么是MongoDB数据库3.
会在Windows平台安装和配置MongoDB数据库4.
掌握PyMongo库的使用知识点了解掌握重点难点数据存储简介√什么是MongoDB√Windows平台安装MongoDB数据库√比较MongoDB和MySQL的术语√√什么是PyMongo√PyMongo的基本操作√√√第10章初识爬虫框架Scrapy章名初识爬虫框架Scrapy学时3学习目标1.
了解常见的爬虫框架2.
掌握Scrapy框架的架构3.
熟悉Scrapy框架的运作流程4.
学会在不同的平台上安装Scrapy框架5.
掌握Scrapy框架的基本操作知识点了解掌握重点难点常见爬虫框架介绍√Scrapy框架的架构√√Scrapy框架的运作流程√√安装Scrapy框架√√新建一个Scrapy项目√√添加Item实体数据√√制作Spiders爬取网页√√√永久性存储数据√第11章Scrapy终端与核心组件章名Scrapy终端与核心组件学时4学习目标1.
会启动和使用Scrapy框架自带的shell2.
掌握Spiders组件,能够更深一步认识并使用这个组件3.
掌握ItemPipeline组件,会自定义管道来处理数据4.
掌握DownloaderMiddlewares组件,可以通过随机IP和随机用户代理应对反爬虫行为5.
掌握Settings组件,能够明确和定制各个Scrapy组件的行为知识点了解掌握重点难点启用Scrapyshell√使用Scrapyshell√√Spiders—抓取和提取结构化数据√√√自定义ItemPipeline√√√DownloaderMiddlewares—防止反爬虫√√Settings—定制Scrapy组件√√第12章自动抓取网页的爬虫CrawlSpider章名自动抓取网页的爬虫CrawlSpider学时3学习目标1.
明确CrawlSpider爬虫类的用途,可以创建使用CrawlSpider模板的爬虫2.
掌握CrawlSpider类的原理3.
掌握Rule类的使用,能够运用该类制定爬虫的爬取规则4.
掌握LinkExtractor类的使用,能够提取需要跟踪爬取的链接知识点了解掌握重点难点初识爬虫类CrawlSpider√CrawlSpider类的工作原理√√√通过Rule类决定爬取规则√√√通过LinkExtractor类提取链接√√√第13章Scrapy-Redis分布式爬虫章名Scrapy-Redis分布式爬虫学时6学习目标1.
了解什么是Scrapy-Redis,明确Scrapy和Scrapy-Redis的关系2.
熟悉Scrapy-Redis的架构和运作流程3.
掌握Scrapy-Redis的主要组件4.
会在不同的平台上独立搭建Scrapy-Redis开发环境5.
理解分布式采用的策略,可以测试服务器端和爬虫端是否能远程连接6.
掌握Scrapy-Redis的基本使用,可以在Scrapy项目的基础上实现分布式爬取知识点了解掌握重点难点Scrapy-Redis简介√Scrapy-Redis的完整架构√√Scrapy-Redis的运作流程√√Scrapy-Redis的主要组件√√安装Scrapy-Redis√安装和启动Redis数据库√修改配置文件redis.
conf√分布式策略√√测试Slave端远程连接Master端√设置Scrapy-Redis组件√√制作Spider爬取网页√√√执行分布式爬虫√√√使用多个管道存储√√√处理Redis数据库里的数据√√四、学时分配章目讲课上机合计第1章初识爬虫1学时0学时1学时第2章爬虫的实现原理和技术3学时1学时4学时第3章网页请求原理2学时1学时3学时第4章抓取网页数据5学时1学时6学时第5章数据解析7学时1学时8学时第6章并发下载2学时1学时3学时第7章抓取动态内容3学时1学时4学时第8章图像识别与文字处理3学时1学时4学时第9章存储爬虫数据3学时1学时4学时第10章初识爬虫框架Scrapy2学时1学时3学时第11章Scrapy框架的shell和组件3学时1学时4学时第12章自动抓取网页的爬虫CrawlSpider2学时1学时3学时第13章Scrapy-Redis分布式爬虫5学时1学时6学时合计41学时12学时53学时五、考核模式与成绩评定办法本课程为考试课程,期末考试采用百分制的闭卷考试模式.
学生的考试成绩由平时成绩(30%)和期末考试(70%)组成,其中,平时成绩包括出勤(5%)、作业(5%)、上机成绩(20%).
六、选用教材和主要参考书本大纲是根据教材《Python快速编程入门》所设计的.
参考书籍:传智播客.
《Python快速编程入门》人民邮电出版社.
201709七、大纲说明本课程的授课模式为:课堂授课+上机,其中,课堂主要采用多媒体的方式进行授课,并且会通过测试题阶段测试学生的掌握程度;上机主要是编写程序,要求学生动手完成指定的程序设计或验证.
撰写人:审定人:批准人:执行时间:
日前,国内知名主机服务商阿里云与国外资深服务器面板Plesk强强联合,推出 阿里云域名注册与备案、服务器ECS购买与登录使用 前言云服务器(Elastic 只需要确定cpu内存与带宽基本上就可以了,对于新手用户来说,我们在购买阿里云服务申请服务器与域名许多云服务商的云服务器配置是弹性的 三周学会小程序第三讲:服务 不过这个国外服务器有点慢,可以考虑国内的ngrokcc。 ngrokcc...
恒创科技也有暑期的活动,其中香港服务器也有一定折扣,当然是针对新用户的,如果我们还没有注册过或者可以有办法注册到新用户的,可以买他们家的香港服务器活动价格,2M带宽香港云服务器317元。对于一般用途还是够用的。 活动链接:恒创暑期活动爆款活动均是针对新用户的。1、云服务器仅限首次购买恒创科技产品的新用户。1 核 1G 实例规格,单个账户限购 1台;其他活动机型,单个账户限购 3 台(必须在一个订单...
华为云怎么样?华为云用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。本次年终聚惠618活动相当给力,1核2G内存1m云耀云服务器仅88元/年起,送主机安全基础版套餐,...
robots文件为你推荐
亿元支付宝重庆电信断网电信光纤一直掉线,打电话问说是机房出了问题 要排查,已经一个星期了还没弄好,大概需要多久才能弄好?文档下载如何 下载 文库文件徐州商标介绍徐州的一种产品泉州商标注册请问泉州商标注册要怎么办理?在哪办理?oa办公软件价格一套专业版的oa办公系统多少钱?免费代理加盟免费加盟代销怎么回事,能具体介绍下么什么是seoSEO网站优化是什么啊?qq头像上传失败我怎么总是QQ上传头像失败,dz论坛DZ论坛Discuz论坛如何DIY门户首页和论坛首页
动态域名 lamp bluehost lighttpd 云主机51web qq数据库 本网站服务器在美国 anylink 百兆独享 合租空间 cn3 免费美国空间 根服务器 谷歌搜索打不开 九零网络 windowsserver2012r2 机柜尺寸 pptpvpn 游戏服务器 studentmain 更多