用一个非常简单的项目来了解Scrapy完成一遍抓取流程

本文通过创建一个Scrapy项目,详细介绍了如何从建立项目、创建Spider、导出内容到保存到MongoDB数据库的全过程。讲解了如何定义Spider、Item、解析Response、生成后续Request,以及使用Item Pipeline将数据保存到MongoDB,帮助读者掌握Scrapy基本用法。
摘要由CSDN通过智能技术生成

本文将通过介绍一个简单的项目,完成一遍Scrapy抓取的流程。通过这个过程,我们可以对Scrapy的基本用法和原理有一个大致的了解,方便以后的使用。

 

1.本文目标

具体需要完成的任务如下:

创建一个Scrapy项目;

创建一个Spider来抓取站点和处理数据;

通过命令行将抓取的内容导出;

将抓取的内容保存到MongoDB数据库。

 

2.准备工作

我们需要安装好Scrapy框架、MongoDB和PyMongo库,如果没有安装,就必须先安装,具体安装方法大家可以看我的安装教程相关文章,如果你使用的是Pycharm软件直接安装也是可以的,具体的这里就不多讲了。

 

3.创建项目

创建一个Scrapy项目,项目文件可以直接用scrapy命令生成,命令如下所示:

scrapy startproject tutorial

这个命可以在任意文件夹运行。如果提示权限有问题,可以加sudo运行该命令。这个命令将会创建一个名为tutorial的文件夹,文件结构如下所示:

 

4.创建Spider

Spider是自己定义的类,Scrapy用它来从网页中抓取内容,并解析抓取的结果。不过这个类必须继承Scrapy提供的Spider类scrapy.Spider,还要定义Spider的名称和起始请求,以及怎样处理爬取后的结果的方法。

也可以使用命令创建一个Spider。比如要生成Quotes这个Spider,可以执行以下命令:

cd tutorial

scrapy genspider quotes quotes.toscrape.com

进入刚才创建的文件夹tutorial,然后执行genspider命令。第一个参数是Spider的名称,第二个参数是网站域名。执行完毕后,spiders文件夹中多了一个quotes.py,它就是刚刚创建的Spider,内容如下所示:

这里有三个属性——name、allowed_domains、start_urls,还有一个方法parse。

name,它是每一个项目唯一的名字,用来区分不同的Spider。

allowed_domains,它是允许爬取的域名,如果初始或后续的请求链接不是这个域名下的,则请求链接会被过滤掉。

start_urls,它包含Spider在启动时爬取的url列表,初始请求由它来定义的。

parse,它是Spider的一个方法。默认情况下,被调用时start_urls里面的链接构成的请求完成下载执行后,返回的响应就会为唯一的参数传递给这个函数。该方法负责解析返回的响应、提取数据或者进一步生成要处理的请求。

 

5.创建Item

Item是保存爬取数据的容器,它的使用方法和字典相似。不过,相对于字典,Item多了额外的保护机制,可以避免拼写错误或者定义字段错误。

创建Item需要继承scrapy.Item类,并且定义类型为scrapy.Field的字段。观察目标网站,我们可以获取到内容有text、author、tags。

定义Item,此时将items.py修改如下:

这里定义了三个字段ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhi_neng

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

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

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

打赏作者

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

抵扣说明:

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

余额充值