Copyright © 2022-2025 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.4·
页面加载耗时 0.00 毫秒·物理内存 73.5MB ·虚拟内存 1300.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Scrapy 爬虫框架可以在 Python2、Python3 的版本上运行。建议使用 Python 3.6.0 以上版本。本章将介绍 Scrapy 爬虫框架的安装、项目创建和运行。
我们可以简单地通过 pip 安装 Scrapy 框架及其依赖:
$ pip install scrapy
Scrapy 安装后,可以通过 Scrapy 命令创建一个爬虫项目,比如创建项目 tutorial:
scrapy startproject tutorial
项目结构如下:
tutorial/ scrapy.cfg # 部署配置文件 tutorial/ # Python模块,代码写在这个目录下 __init__.py items.py # 数据项定义文件 pipelines.py # 数据项管道文件 settings.py # 项目设置文件 spiders/ # 爬虫(蜘蛛)目录 __init__.py
我们开始编写第一个爬虫类 QuotesSpider,代码存放到 tutorial/spiders/quotes_spider.py 文件中。
import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" def start_requests(self): urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/', ] for url in urls: yield scrapy.Request(url=url, callback=self.parse) def parse(self, response): page = response.url.split("/")[-2] filename = 'quotes-%s.html' % page with open(filename, 'wb') as f: f.write(response.body) self.log('Saved file %s' % filename)
爬虫类 QuotesSpider 说明:
进入项目根目录,也就是上面的 tutorial 目录。
cd tutorial
执行爬虫项目:
scrapy crawl quotes
其中的参数 quotes 就是爬虫标识(名字)。
运行结果如下:
... (omitted for brevity) 2016-12-16 21:24:05 [scrapy.core.engine] INFO: Spider opened 2016-12-16 21:24:05 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2016-12-16 21:24:05 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023 2016-12-16 21:24:05 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://quotes.toscrape.com/robots.txt> (referer: None) 2016-12-16 21:24:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://quotes.toscrape.com/page/1/> (referer: None) 2016-12-16 21:24:05 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://quotes.toscrape.com/page/2/> (referer: None) 2016-12-16 21:24:05 [quotes] DEBUG: Saved file quotes-1.html 2016-12-16 21:24:05 [quotes] DEBUG: Saved file quotes-2.html 2016-12-16 21:24:05 [scrapy.core.engine] INFO: Closing spider (finished) ...
现在,检查当前目录中的文件。您应该注意到,已经创建了两个新文件:quotes-1.html 和 quotes-2.html。文件里面就是我们编写的爬虫抓取的内容。
Scrapy 官方示例 Demo:Scrapy 官方提供了一个演示项目,Demo 项目中含有两个爬虫 Spider,分别使用了 CSS 解析 和 XPath 解析。Scrapy 官方示例地址:https://github.com/scrapy/quotesbot。