scrapy使用(笔记)

安装scrapy

pip installl scrapy

项目的一般开发流程:

创建项目-->创建爬虫-->提取数据-->保存数据

1.创建项目,需要在创建命令建立文件,之后代码在这个文件下进行操作。

创建scrapy项目命令:

scrayp startproject<项目名称>

其中每个文件有一定的作用,一些文件一般,这时我们需要明白哪些文件我们不需要修改,哪些文件我们必须写,哪些文件可以选择修改(一般不需要修改)。

2.创建爬虫

scrapy genspider<爬虫名字><允许爬取的域>

说明:

三个参数:name(爬虫名字)、allowed_domains(允许爬取的域)、start_urls(设置起始url,我们只需要设置就好,一般会被自动设置为成请求发送。)

一个方法:parse方法:解析方法,通常用于起始url对应响应的解析。

3.完成爬虫

(1)修改起始url,一般如果按默认,一般不准,所以起始url需要修改。

(2)检查域名。

(3)在parse方法中实现爬虫逻辑。对于长代码,一般会分方法进行编写。

注意:在使用scrpy中使用xpath等,可以需要使用response.xpath方法,这个方法返回的是一个列表。在这里我们需要使用额外的方法:extract_first()和extract()。

当xpath的结果为只含一个值的列表,可以使用extract_first()(如果列表中没有数据,会返回None,不会报错),如果为多个值则使用extract()(数据为空则会报错)。

parse()函数中使用yield返回数据。注意:解析函数中的yield能够传递的对象只能是:Baseliem,request,dict,None。

4.保存数据

在process_item方法设置管道,保存数据需要在process_item中进行保存。如果要保存文件,可以设置open,建立两个方法,不断对文件进行写入数据,即写入一条数据后就调用方法关闭文件,写入下一条时,先打开文件,又写入数据,再关闭文件。

注意:在写process_item方法,我们需要在settings.py配置启用管道。

ITEM_POPELINE={
    '-----------------'
}

把注释去掉,管道的优先顺序,由设置的数据来确定优先级,一般1000以内,值越小,优先级越高。

5.scrapy数据建模和请求:

应用于翻页、数据传递等。(其实就是定义名字,就像定义一个字典,只不过字典在出现新的,会添加,而调用建模,如果定义不存在会报错。)

数据建模在item.py中进行建模,定义item目的是为了确定字段,提前规划好爬取的字段,这样他会自己检查。

建模方法:

进入item.py文件,在方法中编辑。(注意要给定义进行注释)

name = scrapy.Field()
title = scrapy.Field()
.
.
.
.
.

在完成定义后,对建模调用,则会自动检查名字是否正确,不正确会报错。

注意:

1.在from import文件,无法调取,可能是当前文件路径没有在爬虫中。

2.从item.py调用item对象时,数据时json数据,这时候我们需要将他强行转换为字典,这个操作只能在scrapy中使用。

item = dict(item)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Single_minde

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值