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