ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Scrapy 5分钟撸网站系列】5分钟抓全站数据必备基础知识

2021-02-04 21:30:19  阅读:144  来源: 互联网

标签:全站 py 爬虫 抓取 Scrapy 分钟 安装 下载


文章目录

功能概述

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。

其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 后台也应用在获取API所返回的数据或者通用的网络爬虫。

了解学习全部Scrapy模块学习请点传送门
【Scrapy 2.4.0 文章目录】源码解析篇:全部配置目录索引

流程概述

在这里插入图片描述

  1. 调度器(Scheduler):
    把它假设成为一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定下一个要抓取的网址是 什么,同时去除重复的网址(不做无用功)。用户可以自己的需求定制调度器。

  2. 下载器(Downloader):
    所有组件中负担最大的,它用于高速地下载网络上的资源。Scrapy的下载器代码不会太复杂,但效率高,主要的原因是Scrapy下载器是建立在twisted这个高效的异步模型上的(其实整个框架都在建立在这个模型上的)。

  3. 爬虫(Spider):
    用户定制自己的爬虫(通过定制正则表达式等语法),用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。 用户也可以从中提取出链接,让Scrapy继续抓取下一个页面。

  4. 实体管道(Item Pipeline):
    用于处理爬虫(spider)提取的实体。主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。

  5. Scrapy引擎(Scrapy Engine):
    Scrapy引擎是整个框架的核心.它用来控制调试器、下载器、爬虫。实际上,引擎相当于计算机的CPU,它控制着整个流程。

环境搭建

安装Anaconda

Anaconda指的是一个开源的Python发行版本,其包含了Python、conda等N多个科学包及其依赖项。简单理解为一个python的傻瓜捆绑包。

Anaconda下载地址
在这里插入图片描述
因为作者穷买不起苹果系列的电脑,这里以win系统安装举例(Linux必须带图形界面的操作系统才可以,比如Ubuntu系统)

打开安装程序之后一直点下一步。

在这里插入图片描述
安装到最后点击关闭就可以了,然后打开命令行CMD,显示下图证明安装成功。
在这里插入图片描述

安装Pycharm

社区版&专业版 Pycharm 下载地址

下载后是压缩包根据自己的情况进行选择。

启动程序在图示的位置启动即可。
在这里插入图片描述

安装Scrapy

pip install scrapy==2.4.0

在这里插入图片描述

项目说明

1. 创建项目
新建一个文件夹存放所有的Scrapy项目,打开命令行

scrapy startproject 你的项目名(不支持中文)

2. 创建爬虫脚本
进入刚才创建的项目文件夹,其中脚本名称不支持中文、不要带标点符号,目标网站建议用空格代替先

scrapy genspider 脚本名称 "目标网站"

之后生成的目录是这样的
在这里插入图片描述
3. 自动生成文件说明

  • scrapy.cfg
    项目的配置文件,可以暂时忽略。未来部署分布式会使用到。

  • items.py
    保存爬取到的数据的容器,其使用方法和python字典类似, 用于创建抓取内容的字段属性,比如新闻内容设置title、url、content属性用于保存数据结构。

  • pipelines.py
    用来执行保存数据的操作。用于根据items.py指定的字段提取的数据进行保存到相应的表格或者数据仓库中。

  • settings.py
    比较重要的配置文件,用于配置各种设置

  • middlewares.py
    用于在执行爬虫脚本时进行相关操作的控制脚本,例如启动浏览器,更换代理IP等等操作。

  • spiders下的py文件
    是未来写好的爬虫执行脚本。

标签:全站,py,爬虫,抓取,Scrapy,分钟,安装,下载
来源: https://blog.csdn.net/qq_20288327/article/details/113623896

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有