小爬爬5:scrapy介绍2

1.scrapy:爬虫框架

-框架:集成了很多功能且具有很强通用性的一个项目模板

-如何学习框架:(重点:知道有哪些模块,会用就行)

  -学习框架的功能模板的具体使用.

功能:(1)异步爬取(自带buffer)

   (2)高性能的数据解析+持久化存储操作.

2.scrapy环境安装:

  Linux:

      pip3 install scrapy


  Windows:

      a. pip3 install wheel

      b. 下载地址twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

      c. 进入下载目录,执行 pip3 install Twisted‑17.1.0‑cp35‑cp35m‑win_amd64.whl

       #注意:这一步是需要参考python版本cp36或者cp35
  
    d. pip3 install pywin32 e. pip3 install scrapy

3.scrapy数据解析

scrapy使用流程

(1)首先,可以切换想要创建的目录,直接在下面的Terminal中创建一个工程,切换回上一层目录.

(2)创建一个工程命令:scrapy startproject scrapy1

(3)看一下目录结构,我们先了解spiders文件夹和settings.py文件

(4)settings.py里边,我们需要进行相关的属性配置

 spiders文件夹下面,我们需要新建"爬虫文件",

 我们再cd到我们刚才新建的工程内: cd scrapy1

创建爬虫文件:scrapy genspider 爬虫文件名  起始url

      scrapy genspider first www.xxx.com

(5)下面,我们看一下穿件的爬虫文件first.py:

爬虫程序first.py,详细描述

# -*- coding: utf-8 -*-
import scrapy
class FirstSpider(scrapy.Spider):
    name = 'first'
    #name爬虫文件的名称,爬虫文件的唯一标识,有多个爬虫文件的时候会用到

    # allowed_domains = ['www.xxx.com']
    # allowed_domains = ['www.baidu.com']
    #被允许的域名
    #如果修改成:www.baidu.com这个被允许的域名,那么只可以访问百度下的相关地址
    #因此我们知道这个allowed_domains是用来做限定的,这个可以注释掉

    #起始的url列表(可以放置多个url)
    #多个(都会被scrapy进行自动的请求发送)
    start_urls = ['https://www.baidu.com/','https://www.sogou.com/']

    #用来解析数据的parse函数,现在列表中有两个url,这两个都会被请求发送
    #因此会调用两次
    def parse(self, response):  #response是url请求之后得到的响应对象
        print(response)

下面执行爬虫程序(见下图):scrapy crawl first

我们看起来是仅仅执行这一个爬虫文件,但其实是执行了这整个工程

如果仅仅执行这一个爬虫文件是没有任何意义的.

 

运行:

得到的内容,很像是一些日志信息.

(6)我们可以看到其中有一条是"遵循robotstxt_obey"遵循robots协议,这也就意味着我们爬取不到任何的数据,

 因此我们应该设置,不遵从robots协议,具体在settings.py里边设置,

ROBOTSTXT_OBEY = False

(7)下面我们再在设置里,写"遵循UA伪装"

 

(8)这个时候,我们再次运行这个爬虫程序:

得到下面的结果:

(9)start_urls列表里边的url会自动发送请求的,不管有多少个都会发生请求.

 parse这个函数就会得到response响应的响应

 (10)我们看到的信息可能会干扰我们看信息,我们可以设置不看日志

这个时候,我们可以看到只要结果数据

(11)爬取糗事百科中的内容.

猜你喜欢

转载自www.cnblogs.com/studybrother/p/10957878.html
今日推荐