Scrapy基础

  1. Scrapy的优势
  2. Scrapy的安装
  3. Scrapy的架构
  4. Scrapy的执行过程
  5. Scrapy的基本操做
  6. Scrapy的工程文件

1、scrapy的优势

提供了内置的HTTP缓存,以加速本地开发
童工了自动节流调节机制,并且具备遵照robots.txt的内置的能力
能够定义爬行深度的限制,以免爬虫进入死循环连接
会自动保留会话
执行自动HTTP基本认证,不须要明确保存状态
能够自动填写登入表单
scrapy有一个内置的中间件,能够自动设置请求中的引用头referrer
支持经过3XX响应重定向,也能够经过HTML元刷新
避免被网站使用的<noscript>meta重定向困住,以检测没有JS支持的页面
默认使用CSS选择器或者Xpath编写解析器
能够经过Splash或任何其余技术Selenium呈现JavaScript页面
拥有强的社区支持和丰富的插件和扩展来扩展其功能
提供了通用的蜘蛛来抓取常见的格式,站点地图CSV和XML
内置支持以多种格式(JSON,CSV,XML,JSON-lines)导出收集的数据并储存在多个后端FTP S3 本地文件系统中

2、scrapy的安装

使用python的pip安装
pip install scrapy
须要安装的依赖库有lxml,pyOpenSSL,Twisted,pywin32
安装的时候只有Twisted安装不上,能够选择手动安装
到python的Whl文件
whl文件须要选择与系统相对应的版本 不然会安装失败
安装方法 打开命令行窗口输入pip installl 而后把下载的whl文件拖进去回车就OK了

3、scrapy的架构

 

4、scrapy的执行过程

1 引擎打开一个网站 open a domain 找处处理该网站的Spider并向该Spider请求第一个爬取的URL
2 引擎从Spider中获取第一个要爬取的URL并在调度器Scheduler中以Request调度
3 引擎向调度器请求下一个要爬取的URL
4 调度器返回下一个要爬取的URL给引擎,引擎将URL经过下载中间件请求request方向转发给下载器
5 一旦页面下载完毕,下载器生成一个该页面的Response,并将其经过下载中间件(返回Response方向)发送给引擎
6 引擎从下在其中接收Response并经过Spider中间件(输入方向)发送给Spider处理
7 Spider处理Response并返回爬取到的Item及(跟进的新的Request给引擎
8 引擎将(Spider返回的)爬取到的Item给Item Pipeline,将Spider返回的Request给调度器
9 从第2步 重复知道调度器中没有更多的Request,引擎关闭对该网站的执行进程
 

5、scrapy的基本操做

Scrapy是给程序员使用的并无图形化界面,可是纯命令行的操做确实效率高一点
建立一个工程
scrapy startproject <名称>
 
建立一个爬取百度首页的工程
scrapy startproject baidu
cd baidu //进入工程文件夹
scrapy genspider baidu_spider baidu.com 建立一个爬虫
scrapy crawl baidu_spider // 运行爬虫
编写baidu_spider.py爬虫文件
而后运行爬虫
scrapy crawl baidu_spider 

6、Scrapy工程文件

  • __init__.py   #包定义
  • items.py       #模型定义
  • pipeline.py        #管道定义
  • settings.py        #配置文件
  • spiders             #蜘蛛文件夹
  • __init__.py       #默认的蜘蛛代码文件
  • scrapy,py         #Scrapy的运行配置文件
相关连接:
Scrapy文档地址: https://docs.scrapy.org/en/latest/
Scrapy中文网:  http://www.scrapyd.cn
相关文章
相关标签/搜索