Python Scrapy爬虫框架

Scrapy爬虫框架

安装Scrapy

pip install scrapy

1583387366469

安装后测试

执行 scrapy -h

1583387522552

注意:
1.在ubyntu 上安装 scrapy 之前,需要先安装以下依赖:
sudo apt-get install python-dev python-pip libxm12-dev libxsltl-dev zlibig-dev libffi-dev,然后再通过pip install scrapy安装。

2.如果在 windows 系统下,提示这个错误 ModuleNotFoundError: No module name 'win32api',那么使用以下命令可以解决:pip install pypiwin32

 

scrapy介绍

scrapy不是一个函数功能库 而是 爬虫框架

爬虫框架

爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。

爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。

“5+2”结构

1583387992793

 

Engine(不需要用户修改)

控制所有模块之间的数据流

根据条件触发

Downloader(不需要用户修改)

根据请求下载网页

Scheduler(不需要用户修改)

对所有爬取请求进行调度管理

Downloader Middleware

目的:实施Engine、Scheduler和Downloader之间进行用户可配置的控制

功能:修改、丢弃、新增请求或响应

Spider(需要用户编写配置代码)

解析Downloader返回的响应(Response)

产生爬取项(scraped item)

产生额外的爬取请求(Request)

Item Pipelines(需要用户编写配置代码)

以流水线方式处理Spider产生的爬取项

由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型

可能操作不包括:清理、检验和查重爬取项中的HTML数据。将数据存储到数据库

Spider Middleware

目的:对请求和爬取项的再处理

功能:修改、丢弃、新增请求或爬取项

 

Scrapy命令行

scrapy是为持续运行设计的专业爬虫框架,提供操作的Scrapy命令行。

Scrapy命令行格式

** > scrapy < command > [options] [args]

command:Scrapy命令

Scrapy常用命令

命令说明格式
startproject 创建一个新工程 scrapy startproject < name > [dir]
genspider 创建一个爬虫 scrapy genspider [options] < name > < domian >
settings 获取爬虫配置信息 scrapy settings [options]
crawl 运行一个爬虫 scrapy crawl < spider >
list 列出工程中所有爬虫 scrapy list
shell 启动URL调试命令行 scrapy shell [url]

 

实例

演示HTML地址

演示HTML页面地址:http://python123.io/ws/demo.html

文件名称:demo.html

产生步骤

步骤1:建立以Scrapy爬虫工程

1583390529399

 

生成的工程目录

python123demo/ 外层目录

  • scrapy.cfg 部署Scrapy爬虫的配置文件

  • python123demo/ Scrapy框架的用户自定义python代码

    • _ init _.py 初始化脚本

    • items.py Items代码模板,用来存放爬取下来的数据模型(继承类)

    • middlewares.py Middlewares代码模板,用来存放各种中间件的文件(继承类)

    • pipelines .py Piplines代码模板,用来将items的模型存储到本地磁盘中(继承类)

    • settings.py Scrapy爬虫的配置文件,爬虫的配置信息(比如请求头、多久发送一次请求、ip代理池等)

    • spiders/ Spiders代码模板目录,所以爬虫都需存放在这里(继承类)

      • _ init _.py 初始文件,无需修改
      • _ pycache_/ 缓存目录,无需修改

 

步骤2:在工程中产生一个Scrapy爬虫

1583391541994

在\python123demo\spiders目录下生产demo.py文件

demo.py文件

1583391885587

parse()用于处理响应,解析内容形成字典,发现新的URL爬取请求。

 

步骤3:配置产生的spider爬虫

1583392533280

 

步骤4:运行爬虫,获取网页

1583392655796

 

posted @ 2021-03-09 16:50  Hp_mzx  阅读(77)  评论(0)    收藏  举报