您的位置:首页 > 理论基础 > 计算机网络

网络爬虫及scrapy爬虫框架介绍

2018-03-26 17:24 323 查看

爬虫介绍

爬虫介绍

无人值守的自动下载网页内容的手段,只要支持TCP网络编程的所有语言都可以实现爬虫

python爬虫火的原因

代码少。框架丰富,语法简洁

爬虫在技术上怎么实现

1:tcp能够连接–http

2:以流的形式读取并保存

产生爬虫框架的原因

tcp能够连接

问题1.由于有些服务端设置了请求头部的校验

问题2.有些页面的访问需要提交数据(GET或POST方式)

问题3.有些网页需要会话 需要session和cookie

问题4.任务的管理调度

流的形式读取并保存

问题1:我们不需要网页所有内容,网页内容提取

问题2:方便的数据持久能力

scrapy爬虫框架介绍

架构

scrapy engine 核心引擎

Spiders 爬虫

Scheduler 调度器

items 内容

Pipeline 管道筛选处理

中间件 负责请求和下载

认识组件

items 爬到的内容

spiders 蜘蛛

Pipeline 内容处理的管道

Feed exports 内容的序列化方式

使用步骤

1.安装scrapy

root 用户下 yum -y install gcc(scrapy需要gcc依赖)

切换非root用户 pip install scrapy(使用的是python3)

2.创建爬虫项目

scrapy startproject firstdemo


3.认识项目结构

root 用户下 yum -y install tree

切换非root用户 tree

效果如下

firstdemo
├── firstdemo
│   ├── __init__.py
│   ├── items.py
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── __pycache__
│   ├── settings.py
│   └── spiders
│       ├── __init__.py
│       └── __pycache__
└── scrapy.cfg


4.编写自己的代码

爬的内容

定义Item,编写一个类继承scrapy.Item

并声明定义field

爬的范围

定义蜘蛛(spider)集成scrapy.Spider

定义蜘蛛名 name

定义开始爬的位置 start_urls

定义爬的域,也就是规定范围 allowed_domains

定义爬的行为 def parse(response)

5.启动爬虫

scrapy crawl kgc_spider


执行流程

引擎从调度器中取出一个链接(URL)用于接下来的抓取

引擎把URL封装成一个请求(Request)传给下载器

下载器把资源下载下来,并封装成应答包(Response)

爬虫解析Response

解析出实体(Item),则交给实体管道进行进一步的处理

解析出的是链接(URL),则把URL交给调度器等待抓取

xpath简单语法介绍

/表示从根开始
//表示任意后代
.表示当前
@表示当前属性
函数
eg: html.xpath(“/div”)

表示从下的div标签

html.xpath(“//div”)

表示此网页的所有div标签

浅显认知

Item == entity类

spider == dao层

pipelines.py == controller层

settings.py == web.xml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: