文档详情

基于python的网页爬虫.ppt

发布:2017-01-28约1.85千字共16页下载文档
文本预览下载声明
Scrapy 基于python的网页爬虫 内容大纲 爬虫的由来 爬虫与大数据的联系 Scrapy框架简介 学习Scrapy需要准备的知识 Scrapy的基本逻辑和运行原理 认识第一个爬虫 爬虫方向的前景和细分 问题 爬虫有哪些特点,如何区分? 爬虫为什么会出现(开放性问题)? 你讨厌爬虫吗? Quick glance 爬虫的由来 即网络爬虫,是一种自动获取页面内容的程序。它是搜索引擎重要的组成部分。 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 爬虫的分类: 网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型: 通用网络爬虫(General Purpose Web Crawler) 聚焦网络爬虫(Focused Web Crawler) 增量式网络爬虫(Incremental Web Crawler) 深层网络爬虫(Deep Web Crawler) Store of spider and big data 爬虫能做什么 能做什么? 不能做什么? Can Can not Everything on HTML based internet! Bad things! 通常意义来说,爬虫是为了在互联网中获取各种各样的信息,如果说浏览器能完成的页面访问,那么爬虫工程师都可以做出相应的爬虫。 那么问题在于,爬虫开发的Cost和Benefit是否能平衡。 对于敏感和隐私的数据,除非本人/组织同意,否者万万不要去尝试获取这些数据。 问题 为什么Scrapy是流行的爬虫开发框架? Scrapy=Scratch python 基于Python的快速、高层次的屏幕和Web抓去框架,用户专区Web站点(包括H5,移动端Wap站点)并从页面中提取结构化的数据。 Scrapy除了可以用来做爬虫,获取数据和数据监测;另外还可以用作自动化测试框架! Scrapy开发源码,可以做任意的修改,同时提供能各种类型的爬虫基类,如BaseSpider,sitemap,CrawlSpider, 使用Twisted异步网络库 实现异步网络请求 十分灵活:Scrapy Engine 负责整体协调,可以任意增加南北接口,借鉴Django的Middleware概念 容易控制:良好的Html协议支持,并发数可控,开放性好 Scrapy Engine: 处理整个系统的数据流处理、触发事物 Scheduler:管理Request请求的出入栈;去除重复的请求 Downloader:基于Twisted的异步下载器(不处理JS) Pipeline:数据持久化,也可以在此添加验证和去重的功能 Download Middleware:介于Scrapy Engine和下载器之间的middleware,处理两者这件的输入和输出请求 Spider Middleware:介于Scrapy Engine和Spider。 Scheduler Middleware:介于Scrapy Engine和Scheduler。 爬取简易流程 1.Engine 从Scheduler取出一个Url 2.Engine讲Url包装成Request,并交由Downloader 3.Downloader收到Response后,由具体的爬虫解析后生成结构化的Item数据 4.把Item’扔’给Pipeline,Pipeline最终复杂实现数据的存储 Scrapy 的短板 不能完整的模拟浏览器。 目前不能执行JavaScript。因为scrapy框架的Download Middleware没有集成任何浏览器内核。 问题:Scrapy不能执行JavaScript,怎么办? 学习Scrapy需要准备的知识 Scrapy支持Python 2.x和3.x 理解关键字 yield 了解Html协议基本 熟悉xml解析和正则表达式 So easy? 来认识这位“爬虫” 新建工程: scrapy startporject projectname 创建需要的Item、pipeline。 在spiders目录下完成spidername.py 运行scrapy crawl spider
显示全部
相似文档