【爬虫】scrapy爬虫框架

  • Post author:
  • Post category:其他


欢迎来到老胡的算法解题思路,本文章主要使用的语言为python,使用的框架为scrapy,基于这一篇文章,我将为你介绍scrapy的基本操作,以及实际应用,喜欢的朋友可以关注一下,下次更新不迷路!



目录


前言


一、scrapy的安装和配置环境变量


二、创建项目


三、创建爬虫文件


3.1创建爬虫文件


3.2 scrapy项目结构


四、运行爬虫代码


五、scrapy原理


前言

scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。


一、scrapy的安装和配置环境变量

安装代码

pip install scrapy

安装成功后在配置环境变量处用对应路径配置环境变量(下图是我配置的我的路径)

二、创建项目

进入想要创建项目的文件夹下执行创建文件代码(scrapy startproject 项目名)

注意:项目名不能用数字开头,也不能包含中文

scrapy startproject scrapy_test

创建成功时显示的代码如下,并且对应文件目录下成功创建项目

New Scrapy project 'scrapy_test', using template directory 'D:\python\lib\site-packages\scrapy\templates\project', created in:
    D:\python\爬虫\scrapy_test

You can start your first spider with:
    cd scrapy_test
    scrapy genspider example example.com

三、创建爬虫文件

3.1创建爬虫文件

1.进入对应文件夹中创建爬虫文件(在项目名/项目名/spiders)

2.创建代码(scrapy genspider 爬虫文件名 要爬取的网页)

注意:一般情况下要爬取的网页不需要添加http协议,因为起始url会自动拼接上导致要爬取的网页路径错误,出错时可以修改起始url地址。

scrapy genspider scrapy_test1 www.baidu.com

创建成功后对应的文件代码以及代码分析

import urllib.request
import requests
import scrapy
class ScrapyTest1Spider(scrapy.Spider):
    # 爬虫名字,一般用于运行爬虫的时候,使用的值
    name = 'scrapy_test1'
    # 允许访问的域名
    allowed_domains = ['www.baidu.com']
    # 起始的url地址,第一次要访问的域名,它的值是
    # 在允许访问的域名前添加http协议和在它后面添加斜线
    start_urls = ['http://www.baidu.com/']
    # 执行了起始url之后执行的方法,方法中返回的response就是返回的那个对象
    # 相当于response=urllib.request.urlopen()
    # 相当于response=requests.get()
    def parse(self, response):
        pass

3.2 scrapy项目结构

项目名称
    项目名字
        spiders文件夹
            init
            自定义的爬虫文件    核心功能文件
        init
        items    定义数据结构的地方,爬取的数据都包含啥
        middleware    中间件    代理
        pipelines    管道    用来处理下载的数据
        settings    配置文件    robots协议    ua定义等

四、运行爬虫代码

对应路径下运行代码(scrapy crawl 爬虫的名字)

scrapy crawl scrapy_test1

注意:爬取失败(在爬虫文件对应的settings.py下修改为不遵守君子协议)

ROBOTSTXT_OBEY = False

查看百度君子协议(

https://www.baidu.com/robots.txt



五、scrapy原理



版权声明:本文为m0_46708851原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。