scrapy框架
Posted jnhnsnow
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy框架相关的知识,希望对你有一定的参考价值。
框架:继承了很多功能并且具有很强通用性的项目模板
scrapy:高性能的持久化存储,异步的数据下载,高性能数据解析,分布式
环境安装:
linux和mac操作系统:
-
- pip install scrapy
windows系统:
-
- pip install wheel
- 下载twisted,下载地址为http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
- 安装twisted:pip install Twisted?17.1.0?cp36?cp36m?win_amd64.whl
- pip install pywin32 pip install scrapy
测试:在终端里录入scrapy指令,没有报错即表示安装成功
基本使用:
scrapy startproject xxxx
spiders子目录创建一个爬虫文件:
- cd 工程目录中
- scrapy genspider spiderName url
- 执行工程:
scrapy crawl spiderName
scrapy crawl spiderName --nolog #不打印日志信息
settings下写 LOG_LEVEL = ‘ERROR‘ #日志只写错误类型
数据解析:
xpath返回列表 是Selector对象 Selector.extract() /extract_first()或列表.extract()表示列表中每一个的selector的data对应字符串的提取
持久化存储:
1.基于终端指令
-要求:只可以将parse方法的返回值存储到本地的文本文件中
- scrapy crawl 1ocilang -o 路径 (.csv常用 json常用 jsonlines jl xml marshal pickle)
- 优点:简洁高效...
-缺点:局限性 只能存指定后缀文本值 只能存parse的return值
2.基于管道(常用)
- 编码流程:
-
- 数据解析
- 在item中定义相关属性
- 将解析的数据封装存储到item类型的对象中(手动实例化)
- 将item类型的对象提交给管道进行持久化存储操作 #yield item
- 在管道类额process_item中要将其接收到的item对象中存储的数据进行持久化存储
- 在配置文件中开启管道
以上是关于scrapy框架的主要内容,如果未能解决你的问题,请参考以下文章