S++

千线一眼

导航

python爬虫-初识scrapy框架

什么是scrapy框架

介绍

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。
Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。
它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

基本功能

Scrapy是一个适用爬取网站数据、提取结构性数据的应用程序框架,它可以应用在广泛领域:Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片。
尽管Scrapy原本是设计用来屏幕抓取(更精确的说,是网络抓取),但它也可以用来访问API来提取数据。

scrapy环境安装

这里建议使用conda建立独立的环境或者是在pycharm中来安装scrapy

pip install scrapy

scrapy基本使用

1. 创建工程

cd xxx  # 进入到项目指定目录

scrapy startproject study_scrapy01  # 创建一个名为study_scrapy01的工程

显示创建成功

New Scrapy project 'study_scrapy01', using template directory '/Users/soutsukyou/opt/anaconda3/lib/python3.8/site-packages/scrapy/templates/project', created in:
    /Users/soutsukyou/PyCharm_Workspace/网络爬虫/study_scrapy/study_scrapy01

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

项目结构
项目结构

2. 在spiders子目录下创建一个爬虫文件

cd study_scrapy01  # 进入你创建的项目
scrapy genspider spider_01 www.baidu.com  # 生成一个爬虫文件 名为:spider_01 网址为:www.baidu.com

返回结果,这是你会发现你的spiders目录下多了一个 spide_01.py 的文件

Created spider 'spider_01' using template 'basic' in module:
  study_scrapy01.spiders.spider_01

3. 编写爬虫文件

新创建的spide_01.py文件还没有任何爬取方法,我们需要详细它。

import scrapy


class Spider01Spider(scrapy.Spider):
    # 爬虫文件的名称
    name = 'spider_01'
    # 允许的域名,该列表用来限定start_urls列表中的url那些可以请求发送
    # 一般不会让这个里面有值,或者不使用它
    # 假如要爬取一个网站中图片,那么这个网站的图片不一定是在这个网站的域名之下
    allowed_domains = ['www.baidu.com']
    # 起始的url列表,该列表中的url会被scrapy自动的进行请求发送
    start_urls = ['http://www.baidu.com/']

    # 用于数据解析,response就是请求成功后的响应对象
    def parse(self, response):
        print(response)

4. 修改settings.py配置文件

君子协议,这个君子不当也罢(歪嘴)

# Obey robots.txt rules
ROBOTSTXT_OBEY = False

# 仅输出错误日志
LOG_LEVEL = 'ERROR'

5. 执行工程文件

scrapy crawl spider_01

posted on 2022-03-22 21:09  S++  阅读(49)  评论(0编辑  收藏  举报