【Python爬虫开发基础⑬】Scrapy库概述(简介、安装与基本使用)

🚀个人主页为梦而生~ 关注我一起学习吧!
💡专栏python网络爬虫从基础到实战 欢迎订阅!后面的内容会越来越有意思~
💡往期推荐
⭐️前面比较重要的基础内容
【Python爬虫开发基础⑧】XPath库及其基本用法
【Python爬虫开发基础⑨】jsonpath和BeautifulSoup库概述及其对比
【Python爬虫开发基础⑩】selenium概述
【Python爬虫开发基础⑫】requests库概述(文件上传、cookies处理、状态码处理、异常处理等)
⭐️爬虫的实战文章
【Python爬虫开发实战①】使用urllib以及XPath爬取可爱小猫图片
【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息
大家可以复制代码感受一下爬虫的魅力~
💡本期内容:上一篇文章我们简单的介绍了requests库,这一篇文章我们来讲爬虫企业级开发中最重要的一个框架:scrapy~



1 Scrapy简介

Scrapy是一个用于快速、高效地抓取和提取数据的Python开发框架。它基于异步网络库Twisted,并提供了强大的自定义功能,使得开发者能够灵活地编写网络爬虫和数据抓取程序。

以下是Scrapy框架的主要特点:

  • 基于异步的架构:Scrapy使用了异步的方式处理网络请求和响应,能够高效地处理大量的并发任务。

  • 强大的爬取能力:Scrapy支持多线程和分布式爬取,可以同时处理多个请求,加快数据采集速度。

  • 灵活的数据提取:Scrapy提供了XPath和CSS选择器等多种方法来方便地提取网页中的数据,使得数据抽取变得简单高效。

  • 自动的请求管理:Scrapy自动处理请求的发送和跟踪,包括请求的排队、重试、优先级设置等,减少了开发者的工作量。

  • 丰富的中间件支持:Scrapy允许开发者通过中间件对请求和响应进行处理,添加自定义的功能或逻辑,例如代理、用户登录等。

  • 内置的各种组件:Scrapy提供了许多内置的组件,如自动限速、去重过滤器、HTTP缓存等,方便开发者进行快速开发和部署。

总而言之,Scrapy是一个功能强大的网络爬虫框架,使得开发者能够高效地抓取、提取和处理互联网上的数据。它广泛应用于舆情分析、数据挖掘、价格监测、搜索引擎等领域。


2 Scrapy安装与配置

首先,确保您的Python环境已经安装和配置好。Scrapy要求使用Python 3.6或更高版本。

  • 打开命令行终端(Windows用户可以使用命令提示符或PowerShell,Mac和Linux用户可以使用终端)
  • 在终端中运行以下命令来安装Scrapy:
pip install scrapy

如果遇到权限问题,请尝试在命令前面加上sudo以获取管理员权限。

  • 安装完成后,可以使用以下命令验证Scrapy是否成功安装:
scrapy version

如果成功安装,将显示Scrapy的版本信息。

2.1 安装失败情况分析

  • 报错1: building ‘twisted.test.raiser’ extension
    error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++
    Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools
  • 解决方法:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    到这个网站找到Twisted‑20.3.0‑cp37‑cp37m‑win_amd64.whl
    cp是你的python版本,amd是你的操作系统的版本
    下载完成之后 使用pip install twisted的路径 安装
    切记安装完twisted 再次安装scrapy
  • 报错2:提示python -m pip install --upgrade pip
  • 解决方法:运行python -m pip install --upgrade pip
  • 报错3:win32的错误
  • 解决方法:pip install pypiwin32
  • 其他报错解决方法:使用anaconda

3 Scrapy基本使用

3.1 创建Scrapy项目

打开命令行终端,通过以下命令创建一个新的Scrapy项目:

scrapy startproject project_name

这将在当前目录下创建一个名为"project_name"的Scrapy项目。
在这里插入图片描述

在这里插入图片描述
注意:项目的名字不允许使用数字开头 也不能包含中文

3.2 创建Spider

要在spiders文件夹中去创建爬虫文件
进入项目目录,并通过以下命令创建一个爬虫(Spider)

cd project_name

scrapy genspider 爬虫文件的名字 要爬取网页

scrapy genspider spider_name example.com

一般情况下不需要添加http协议 因为start_urls的值是根据allowed_domains修改的。所以添加了http的话 那么start_urls就需要我们手动去修改了
在这里插入图片描述
这就是刚创建好的baidu.py
在这里插入图片描述

3.3 编写爬虫代码

我们需要实现parse()方法来解析和提取页面数据。
在这里插入图片描述

3.4 运行爬虫

输入以下命令

scrapy crawl 爬虫的名字

在这里插入图片描述


4 爬虫遇到的RobotsTxt

RobotsTxt(机器人协议)是一种用来指导搜索引擎爬虫在访问网站时应该遵守的规则。它通常位于网站根目录下的名为"robots.txt"的文本文件中。RobotsTxt文件使用简单的语法规则来控制哪些页面可以被爬取,哪些页面不可以被爬取。

以下是RobotsTxt的基本用法和语法解释:

  1. User-agent (用户代理)
    –指定要约束的搜索引擎爬虫的名称或标识。
    –可以使用"*"表示适用于所有爬虫。

  2. Disallow (禁止访问)
    –指定不允许爬虫访问的URL路径。
    –使用相对路径或绝对路径指定禁止访问的页面。
    –可以使用多个Disallow规则来指定多个禁止访问的路径。

  3. Allow (允许访问)
    –指定允许爬虫访问的URL路径。
    –通常与Disallow一起使用,当Disallow规则具有更高优先级时,Allow规则可以用来覆盖部分限制。

  4. Sitemap (网站地图)
    –指定网站的XML Sitemap文件的路径。
    –Sitemap文件包含了网站中所有可供爬取的URL地址,并帮助搜索引擎更好地了解网站结构。

例如:

User-agent: *
Disallow: /private/
Disallow: /secret.html
Allow: /public/

Sitemap: https://www.example.com/sitemap.xml

在scrapy中,我们只需要将settings.py中的这一行注释掉或者设为false即可
在这里插入图片描述
接下来我们再次运行就可以看到我们在parse中写的内容了,证明该代码执行成功
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

为梦而生~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值