爬虫介绍
- 爬虫介绍
无人值守的自动下载网页内容的手段,只要支持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