【Scrapy】Scrapy教程5——第一个Scrapy项目


通过前几节的学习,我们已经了解了Scrapy的基本操作,下面我们开始第一个项目,我以本人的 网址为例进行爬虫讲解,之所以用我自己的网站,是因为我这个网站本来就是做知识分享用的,共大家学习,不会去限制爬取,现在很多网站为了防止爬虫,都会做很多限制策略,不适合新手练习,本人就提供这样一个练习平台给大家。当然维护网站不易,如果你学到了知识,也请给作者一杯咖啡的钱谢谢🙏。
注:本教程的所有代码均在windows上完成的,其他系统文件路径或系统相关命令可以会有区别。

Scrapy目录结构

我们先回过头,再看下Scrapy目录结构,这次要说明的就不是根目录和项目目录的作用了,而是要对每个文件及目录进行下说明,开始编写我们的第一个爬虫。
首先使用命令创建爬虫项目,我的网站主要是做知识内容分享的,所以项目名称就叫KnowledgeSharing,使用命令创建如下

scrapy startproject KnowledgeSharing

爬取的网页就是首页,我们爬虫名就叫shouye,使用命令创建如下

cd KnowledgeSharing
scrapy genspider shouye www.jayhgq.cn

执行以上命令后,我们会得到以下目录,我在每个文件后面加了注释,解释这个文件的作用。

├─KnowledgeSharing  # 项目目录,即我说的根目录
│  │  scrapy.cfg  # 项目的主要配置信息,部署时从这个文件中查询配置
│  │
│  └─KnowledgeSharing  # 爬虫程序目录
│      │  items.py  # 数据存储模版文件,用于结构化数据
│      │  middlewares.py  # 中间件文件,用于编写爬虫中间件和下载器中间件
│      │  pipelines.py  # 数据处理文件,一般用来存储结构化后的数据
│      │  settings.py  # 配置文件,如设置请求头、递归层数等等,所有选项必须大写,否则无效
│      │  __init__.py  # 初始化文件,和python的__init__.py文件一样,用于将目录标记为包和包的初始化
│      │
│      ├─spiders  # 爬虫代码文件夹
│      │  │  shouye.py  # 刚刚创建的爬虫代码文件,用来编写爬虫规则
│      │  │  __init__.py  # 初始化文件

第一个爬虫

知道了Scrapy的目录结构,我们可以动手开始做我们的第一个爬虫了,从目录结构中能看到,爬虫规则是写在spiders文件夹下的爬虫代码文件中,刚创建的第一个爬虫代码文件叫shouye.py,我们打开这个文件,可以看到以下内容,同样我为代码加上了注释,一定要仔细看注释,不然后面可能有些内容会不清楚。

import scrapy  # 导入scrapy包

# 爬虫类,类名一般是name+Spider,必须是Spider的子类,即需要继承Spider才能被Scrapy识别
class ShouyeSpider(scrapy.Spider):
    # 爬虫名称name,一个项目中名称需要保持唯一
    name = "shouye"
    # allowed_domains允许访问的域名列表,默认开启,只允许爬取该列表下的页面,可在settings.py的中间件中部分关闭
    allowed_domains = ["www.jayhgq.cn"]
    # 第一个请求的地址默认从start_urls中获取
    start_urls = ["https://www.jayhgq.cn"]

	# 默认回调函数parse,用来处理请求的响应response,可以在这里进行数据提取
    def parse(self, response):
        pass

以上是用scrapy的genspider命令自动生成的,但是这样我们执行什么都存储不下来,我们来做下简单的改动,如下

# 导入pathlib来处理文件路径等问题
from pathlib import Path
import scrapy

class ShouyeSpider
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值