Scrapy是Python中最风行的网页爬虫框架之一,弱小且功能丰富。通过Scrapy,你能够疾速创立一个爬虫,高效地抓取和解决网络数据。在这篇文章中,咱们将介绍如何应用Scrapy构建一个根底的爬虫。

一、Scrapy简介及装置

Scrapy是一个用Python实现的开源网页爬虫框架,次要用于网页数据抓取和剖析。它提供了所有的根底性能,包含解析HTML(或其余格局的数据)、解决HTTP申请、解决cookies和session、多线程抓取等等,还提供了多种类型的爬虫模型,实用于不同的需要。

装置Scrapy非常简单,只须要应用pip装置即可:

pip install Scrapy

二、创立一个Scrapy我的项目

Scrapy应用一个独自的我的项目空间来组织每一个爬虫。你能够应用Scrapy的命令行工具来创立一个新的我的项目:

scrapy startproject tutorial

这会创立一个名为"tutorial"的Scrapy我的项目,我的项目构造如下:

tutorial/    scrapy.cfg            # 我的项目的配置文件    tutorial/             # 我的项目的Python模块        __init__.py        items.py          # 我的项目的数据模型文件        middlewares.py    # 我的项目的中间件文件        pipelines.py      # 我的项目的数据处理管道文件        settings.py       # 我的项目的设置文件        spiders/          # 寄存爬虫代码的目录            __init__.py

三、编写一个简略的爬虫

在Scrapy中,爬虫是一类定义了如何爬取某个网站(或一组网站)的类,包含如何进行网页爬取(即初始URL)、如何跟踪链接、如何从网页的内容中提取数据等等。

上面咱们将创立一个简略的Scrapy爬虫,用于爬取quotes.toscrape.com网站的援用内容。首先,咱们须要在spiders目录下创立一个新的Python文件quotes_spider.py:

import scrapyclass QuotesSpider(scrapy.Spider):    name = "quotes"    def start_requests(self):        urls = [            'http://quotes.toscrape.com/page/1/',        ]        for url in urls:            yield scrapy.Request(url=url, callback=self.parse)    def parse(self, response):        page = response.url.split("/")[-2]        filename = f'quotes-{page}.html'        with open(filename, 'wb') as f:            f.write(response.body)        self.log(f'Saved file {filename}')

在这个代码中,咱们定义了一个名为QuotesSpider的Scrapy爬虫。爬虫首先会申请URLs列表中的每个URL,而后对每个响应进行解决,将响应的内容保留到一个HTML文件中。

四、运行Scrapy爬虫

创立好爬虫后,你能够应用Scrapy的命令行工具来运行爬虫:

scrapy crawl quotes

当你运行这个命令,Scrapy将会找到名为"quotes"的爬虫,并开始爬取,而后将爬取的内容保留到文件中。

通过这篇文章,你应该对Scrapy有了根本的理解,并可能创立和运行一个简略的Scrapy爬虫。在下一篇文章中,咱们将更深刻地探讨Scrapy的性能,包含如何提取数据,如何应用Scrapy的数据管道,如何解决登录和cookies等等。