爬虫学习笔记--scrapy

本文介绍了Scrapy的强大功能,包括异步数据下载、高性能解析以及分布式支持。重点讲解了如何创建爬虫、设置起始URL、数据解析策略,以及持久化存储的两种方式——基于终端指令和基于管道。此外,还探讨了如何配置和使用item pipelines进行数据持久化和多样性标签应用。
摘要由CSDN通过智能技术生成

scrapy的功能:高性能的持久化存储,异步的数据下载,高性能的数据解析操作
分布式
在这里插入图片描述

1.创建一个工程
Scrapy startproject xxxxx
2.在spiders子目录中创建一个爬虫文件
Scrapy genspider spiderName www.xxx.com
3.执行工程
-scrapy crawl spiderName

Allowed_dimains 允许的域名:用来限定star_urls列表中那些url可以进行请求发送
Start_urls:起始域名列表:该列表中存放的url会被scrapy自动进行请求的发送
Parse用作于数据解析

def parse(self,reponse):
	pass

用于response参数表示的是请求成功后对应的响应对象
执行时用
Scrapy crawl spidername --nolog 取消日志其他信息的打印
也可在setting.py中加入LOG_LEVEL =”ERROOR”同样效果
数据解析

Div_list=Response.xpath()

直接使用xpath解析并且不需要实例化,用法几乎一样
//div [@属性值]/div]
例:

for  div  in div_list:
 	Author=div.xpath(./div[1]/a[2]/h2/text())
 	Content=div.xpath(./a[1]/div/span//text())

如果内容中有标签,但要获取全部内容则需要使用//text() 而且xpath返回的是列表
将setting中的ueragent改成网页的
但该情况是selector对象的数据,所以区别在于scrapy应该在末尾加.extract()
Extract_first()对列表中的第0个进行操作
持久化存储:
-基于终端指令:
-要求:只可以将parse方法的返回值存储的本地的文本文件中即在parse加return
-scrapy crawl spidername -o ./*.Csv 文件名称
在这里插入图片描述

只能放到这几种文件格式中
—好处简洁高效便捷,局限性强
-基于管道:
-编码流程:
-数据解析
-在item类中定义相应属性
使用xxx=scrapy.Field()定义
-将解析的数据封装到item类型的对象即item.py
-将item类型的对象提交给管道进行持久化存储的操作
-在管道内的process_item中要将其接收到的item对象中的存储的数据进行持久化存储操作
-pipeline专门用来处理item类型对象该方法可以接受爬虫文件提交过来的item对象
-在配置文件中开启管道

从源文件导入 from ***pro.item import **item
在parse中实例化一个item对象
Item=**item()
Item[‘属性值’]=属性值 #进行封装
Yield item #将item提交给管道
在pipeline中
=item【‘’】
重写一个方法 :该方法只在开始爬虫的时候被调用一次

Fp= none
Def open_spider(self,spider):
		print(“start”)
self.fp=open(‘path’,’w’,encoding=’utf-8)

Def  close_spider(self,spider):
Print(“over”)
Self.fp.close()

将setting文件中的item_pipelines字典解开注释,即开启管道 300表示的是优先级数值越小优先级越高
-------通用性强。编码流程较繁琐
定义多个管道时要在管道文件中再写一个类

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值