爬虫python框架--Scrapy学习笔记

scrapy框架的运行流程:

首先启用爬虫里面的starturl获取响应response。再通过xpath提取数据,提取的数据通过创建的item对象暂存到item.py(数据中转站)里面的item里面,item数据通过yield返回给管道,管道给写入文件保存起来。

item. py pipeline.py区别

items.py
Item 可以理解为数据的中转类,因为我们爬取网页后需要将进行解析,并将解析后的数据进行存储分析。所以为了便于数据的迁移存储,我们可以将数据封装为一个 Item 类,然后在对 Item 类进行操作,这样可以避免很多不必要的错误。
piplines.py
用来处理保存数据的模块,我们爬取网页后解析生成的 Item 类会被传递到这里进行存储解析等操作。 Scrapy 提供了许多有用的 Pipeline 类来处理数据,我们也可以自定义 Pipeline 类进行处理。

代码里面用yield关键字原因

用数组items存放数据有一个缺点,因为要将成千上万的数据放在items里面会导致内存很大程度的消耗。故用yield来返回数据,yield和return都可以返回数据,但是return是循环结束完才返回一个数据, yield和for…in构成是生成器获取一个数据就返回一个数据,放到pipelines里面进行存储不会占用内存资源,同时还会回来继续从response里面获取数据
【注意】yield返回的数据会交给pipeline
,而 return只会放在内存里面

···管道可以既可以将数据保存到文件,又可以将数据保存到数据库,而直接用scrapy crawl itcast -o teachers.xxx不能实现保存到数据库,且输出文件不能实现格式转换。

···运用xpath取值的时候如果所有的标签元素没有名称,可以由索引号来具体确定每一个p标签或者h标签

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值