【爬虫】scrapy爬虫框架

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

内容

前言

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

2.创建项目

3.创建爬虫文件

3.1创建爬虫文件

3.2 scrapy项目结构

四、运行爬虫代码

五、scrapy原理

前言

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

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

安装代码

pip install scrapy

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

【爬虫】scrapy爬虫框架

2.创建项目

进入想要创建项目的文件夹下执行创建文件代码(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.创建爬虫文件

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原理

【爬虫】scrapy爬虫框架

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2022年4月9日 上午10:49
下一篇 2022年4月9日 上午11:08

相关推荐