Scrapy爬虫框架的基本使用 创建spider工程和spider爬虫 scrapy基本命令

Scrapy爬虫框架的基本使用 创建spider工程和spider爬虫 scrapy基本命令

Srcapy介绍

Scrapy是一个健壮的爬虫框架,可以从网站中提取需要的数据。是一个快速、简单、并且可扩展的方法。Scrapy使用了异步网络框架来处理网络通讯,可以获得较快的下载速度,因此,我们不需要去自己实现异步框架。并且,Scrapy包含了各种中间件接口,可以灵活的完成各种需求。所以我们只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页上的各种内容。

Scrapy爬虫的优点很多:

  • 内建的css选择器和xpath表达式。
  • 基于IPython交互shell,方便编写爬虫和debug。
  • 健壮的编码支持。
  • 扩展性强,可使用signals和api(中间件,插件,管道)添加自定义功能。
  • 多用于session,cookies,http认证,user-agent,robots.txt,抓取深度限制的中间件和插件。
  • scrapy內建teinet console,可用于debug。

Scrapy的安装

scrapy的安装可能回出现问题。如果安装不成功,先安装 wheel,然后下载twisted:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted,进入你下载的目录执行:pip install Twisted-17.1.0-cp35-cp35m-win_amd64.whl,注意安装的是你选择的whl,而不是我这个。安装失败,可以换另一个版本的twisted文件再次进行安装

接着使用pip命令安装pywin32,最后安装scrapy,或者设置超时命令直接安装scrapy:

pip install --default-timeout=5000 scrapy

鳄鱼君Ba使用的是2020.1的pycharm,是直接在settings中安装的,第一次没安装上,重试一次就成功了。

Scrapy创建工程

scrapy startproject 工程名字

创建工程之后,会生成一个固定的文件目录,结构如下:


├── mySpider  爬虫总目录
|   |── spiders   爬虫文件夹
|      ├── __init__.py
│      └── __pycache__
│   ├── __init__.py
│   ├── items.py  项目文件
│   ├── middlewares.py  中间件文件
│   ├── pipelines.py  管道文件
│   ├── __pycache__
│   ├── settings.py  设置文件 
└── scrapy.cfg  配置文件

spiders就是爬虫文件夹,创建一个爬虫文件必须要要进到该目录下。爬虫文件可以有多个,爬虫名字不可重复!

在Scrapy爬虫的工程目录中,存在有以下几个文件以及各部分组件的工作:

  • 管道文件夹(pipelines):负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
  • 中间件文件(middlewares):包含爬虫中间件下载器中间件
  • 设置文件(settings):对爬虫文件进行配置。
  • 爬虫文件(spiders):在这里编写我们的爬虫文件,需要爬取什么网站。

Scrapy命令整理

1.创建一个新的爬虫项目
scrapy startproject 项目名
2.生成爬虫
scrapy genspider 爬虫名 网址
3.运行爬虫文件
scrapy crawl 爬虫名称
scrapy crawl 爬虫名 -o 文件名.json  #保存json文件到本地
4.check检查错误
scrapy check
5.list返回项目所有的爬虫spider名称
scrapy list
6.view,存储,打开网页
scrapy view 网址
7.进入scrapy shell终端
scrapy shell 网址

接下来简单创建一个myspider爬虫项目,并创建myspider爬虫文件:

scrapy startproject myspider1
cd myspider1
scrapy genspider meizi https://www.meizitu.com/

然后会在myspider1文件夹下自动生成一个meizi爬虫文件,内容如下:

# -*- coding: utf-8 -*-
import scrapy
class MeiziSpider(scrapy.Spider):
    # name表示爬虫文件的名称,爬虫文件的名称表示的是爬虫问啊进的唯一标识
    name = 'meizi'
    # 允许的域名:用来做请求的限定,一旦该域名定义好之后,则start_url只可以发起该域名下的url的get请求
    allowed_domains = ['www.meizitu.com']
    # 起始的url列表:将要爬取的url存放在该列表中,这个列表就可以帮我们将每一个url进行get请求的发送
    start_urls = ['https://www.meizitu.com/']
    # parse用于数据解析,response参数就是请求回来的相应对象
    def parse(self, response):
        pass

到这里为止,你已经知道了如何创建一个简单的scrapy工程,那么接下来就是如何运行scrapy爬虫和数据解析,这里你可以自己随便找一个网站进行测试,参考:Scrapy爬虫框架运行爬虫文件 简单的处理settings.py配置信息 处理scrapy日志

分享到 :

发表评论

登录... 后才能评论