Scrapy 框架(一):douban信息

一、框架简介:

1、Scrapy是纯python开发的一个高效,结构化的网页抓取框架;
2、Scrapy是用纯python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。多用于抓取大量静态页面
3、框架的力量,用户只需要制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。
4、Scrapy使用了Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各种中间件接口,可以灵活的完成各种需求。

二、运行流程:

Scrapy架构解析:

Scrapy架构解析
Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
Scheduler(调度器): 它负责接受引擎发送过来的Request请求, 并按照一定的方式进行整理排列, 入队, 当引擎需要时,交还给引擎。
Download(下载器): 负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。
**Spider(爬虫):**它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。
Item Plpeline(管道): 它负责处理Spider中获取到的Item,并进行后期处理(详细分析、过滤、存储等)的地方。
Downloader Middlewares: (下载中间件):你可以当做是一个可以自定义扩展下载功能的组件。
Spider Middlewares(Spider中间件): 你可以理解为是一个可以自定义扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses 和 从Spider出去的Requests)。

三、模块安装:

scrapy支持python2.7和python3.4以上版本。
python包可以用全局安装(也称为系统范围),也可以安装在用户空间中。不建议安装在系统范围。相反,建议在“虚拟环境”(virtualenv)中安装scrapy。Virtualenv允许不与已安装的Python系统包冲突,并且任然通常使用pip安装。
Ubuntu 14.0.4或以上安装:
scrapy目前正在使用最新版的lxml,twisted和pyOpenSSL进行测试,并且与最近的Ubuntu发行版兼容。但它也支持旧版本的Ubuntu,比如Ubuntu14.04,尽管可能存在TLS连接问题。
Ubuntu安装注意事项
Ubuntu安装事项
不要使用python-scrapyUbuntu提供的软件包,它们通常太旧而且速度慢,无法赶上最新的Scrapy。
要在Ubuntu(或基于Ubuntu)系统上安装scrapy,您需要安装这些依赖项:

sudo apt-get install python-dev python-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev

如果你想在python3上安装scrapy,你还需要python3的开发文件:

sudo apt-get install python3-dev

在virtualenv中,你可以使用pip安装Scrapy:

pip install scrapy

四、简单实用:

第零步:分析网站

  1. 你的目标是什么?
  2. 你的目标是动态数据or静态数据?
  3. 怎么获取第一批数据?
  4. 怎么获取多批数据?
  5. 怎么做持久化?
    分析要抓取的数据:
    进入豆瓣电影首页–>> 排行版–>>剧情:
    分析
    分析要抓取的内容:
    数据分析1
    打开开发者模式,进行数据分析:
    分析后发现图片的url在源代码中找不到,可能是ajax动态数据。
    数据分析2
    数据分析3
    进入开发者模式下的Network–>>XHR,然后按Ctrl+R刷新网页,会出现以下像列表的数据:
    数据分析4
    里面有20条动态数据,如下:
    数据分析5
    展开分析,数据如下:
    数据分析6
    我们也可以在Headers复制请求头的链接,在新窗口粘贴,就能看到我们要的JSON数据(*注意:要先看到如下的数据,浏览器得安装扩展工具JSONView【JSONView插件能更好的展示我们访问到的json数据】):
    数据分析7
    数据分析7

第一步:新建项目

创建项目:scrapy startproject project_name
进入项目目录后创建爬虫:
scrapy genspider spider_name website_domain
执行爬虫:
scrapy crawl spider_name 或者 scrapy runspider spider_file
----------------------------------------------------------------------------------------------------------------
项目目录
scrapy.cfg: 项目部署的配置文件
tz_spider: 项目目录,包含了项目运行相关的文件
itsms.py : 项目的目标文件
middlewares.py : 项目的中间件文件
pipelines.py : 项目的管道文件
settings.py : 项目的设置文件
spiders : 项目的爬虫目录

第二步:设置项目目标

进入items.py文件中设置爬取的目标
文件注册1

第三步:设置管道文件

编辑pipelines.py文件,让目标数据流向指定点. 如:数据保存到文件中
【*注意:管道文件设置好后,需要在settings.py文件注册】
文件注册2

记住得在settings.py中注册,(要不然运行会报错):

文件注册3

第四步:修改设置文件(即Settings.py)

设置UA信息
设置不遵循robots检测
设置爬虫时间间隔
设置管道文件注册

User_Agent 后面的信息改成浏览器中的信息:
文件注册4
文件注册5
文件注册6
文件注册7
文件注册8

第五步:编写spider

编写spider文件1
编写spider文件2

第六步:运行和运行结果

1、方法一:(在虚拟机中的命令)

scrapy crawl douban.py		(.py可加也可不加)

运行结果1
2、在pycharm运行:
得在douban.py同目录下创建一个运行脚本runStart.py(命名名字随意)
脚本
然后运行runStart.py文件。

运行后的数据:
数据显示1
数据显示2
你的支持就是我的动力,记得帮我点个赞哦。。。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值