爬虫框架 Scrapy 应用实践 - 淘宝保险频道数据抓取【1】- 前期准备

用户头像
hadesxiong
关注
发布于: 2020 年 05 月 25 日
爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【1】-前期准备

1. 写在前面

Scrapy框架的应用实践需要一些知识的储备:

  • Python(框架主体)

  • SQL或者NoSQL数据库(数据存储)

  • HTML及CSS(页面节点分析)

  • XML(XPath相关)(页面节点分析)

  • 网页数据抓包(数据分析)



2. Scrapy架构设计

Scrapy是一套基于Python语言编写的开源爬虫框架,目前已更新到2.1版本。通常Scrapy被用于网站数据爬取、提取结构性数据、数据挖掘、信息处理、或存储历史数据等一系列的程序中。

Scrapy整体架构设计图如下(绿色代表数据流向):

图片引用自Scrapy开发文档-架构概览



  • Scrapy Engine(引擎): 负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。

  • Scheduler(调度器): 它负责接受引擎发送过来的Request请求,并按照一定的方式进行整理排列,入队,当引擎需要时,交还给引擎。

  • Downloader(下载器):负责下载Scrapy Engine(引擎)发送的所有Requests请求,并将其获取到的Responses交还给Scrapy Engine(引擎),由引擎交给Spider来处理。

  • Spider(爬虫):它负责处理所有Responses,从中分析提取数据,获取Item字段需要的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。

  • Item Pipeline(管道):它负责处理Spider中获取到的Item,并进行进行后期处理(详细分析、过滤、存储等)的地方。

  • Downloader Middlewares(下载中间件):你可以当作是一个可以自定义扩展下载功能的组件。

  • Spider Middlewares(Spider中间件):你可以理解为是一个可以自定扩展和操作引擎和Spider中间通信的功能组件(比如进入Spider的Responses;和从Spider出去的Requests)。

3. Scrapy常用模块介绍

  • Item:Item对象是简单的容器,用以保存爬取的数据,提供了类似字典的API以及用于声明可用字段的简单语法。

  • Selectors:通过特定的XPath或者CSS表达式来"选择"HTML文件中的一部分。

  • Item Pipeline:Item管道,根据收到的Item执行一些行为,同时也决定Item是否继续通过Pipeline,或者被丢弃不再处理。

  • Feed Exports:Scrapy自带了Feed输出,并且支持多序列化格式(JSON, JSON lines, CSV, XML)及存储方式(本地文件系统,FTP,S3(需要boto),标准输出)。

  • Request/Response:Request对象在spiders中被生成且最终传递到下载器Downloader,下载器Downloader对其进行处理并返回一个Response对象,Response对象还会返回到生成Request的spider中。

4. 安装建议(虚拟环境)

利用virtualenv为每个项目创建一套“隔离”的Python运行环境。

利用virtualenvwrapper实现快捷进入方式。

4.1 virtualenv安装

4.1.1 Path路径检查

检查系统环境变量中是否已经添加了Python的Path路径,如下图:



4.1.2 安装、创建和进入

通过如下命令来安装。

pip install virtualenv

创建一个虚拟环境

mkvirtualenv 你要创建的虚拟环境的名称

进入创建的虚拟环境

cd 你创建虚拟环境的位置



activate.bat

退出创建的虚拟环境

deactivate.bat
4.2 virtualenvwrapper-win安装

4.2.1 安装和使用

通过如下命令来安装

pip install virtualenvwrapper-win

通过workon命令查看是否可用

workon

当然你可以直接进入你创建的虚拟环境,比如

workon 你创建的虚拟环境的名称

4.2.2 更改存放路径

默认存放于C:\Users\Administrator\Envs目录中,也可以通过系统环境变量进行修改,如下:




到此,前期的准备工作基本都已经完成了,下一步我们就要开始对淘宝的保险频道数据做抓包分析了。



发布于: 2020 年 05 月 25 日 阅读数: 52
用户头像

hadesxiong

关注

不喜欢打游戏的产品汪肯定不是好的程序猿! 2020.05.19 加入

保险行业-产品经理/BA

评论

发布
暂无评论
爬虫框架Scrapy应用实践-淘宝保险频道数据抓取【1】-前期准备