📅  最后修改于: 2023-12-03 15:20:01.195000             🧑  作者: Mango
Scrapy 是 Python 开发的一个快速、高效、灵活且可扩展的网络爬虫框架,可用于数据挖掘、信息处理或存储在不同的容器中。Scrapy 使用 Twisted 框架处理异步网络通信,并支持多线程处理,具有自动化的 URL 完整性控制以及内置的数据解析器。
Scrapy 可以简单通过 pip 工具安装。
pip install Scrapy
创建一个 Scrapy 项目的方法如下:
scrapy startproject project_name
项目创建成功后,进入到项目目录,可以看到以下文件结构:
project_name/
scrapy.cfg
project_name/
__init__.py
items.py
middlewares.py
pipelines.py
settings.py
spiders/
__init__.py
spider_name.py
编写一个 Scrapy 爬虫,需要在 spiders 目录下创建一个 Python 文件,Scrapy 提供了针对不同网站的默认爬虫类,也可以继承自一个通用类来编写自己定制的爬虫。
以下是一个简单的 Scrapy 爬虫实例:
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = [
'http://quotes.toscrape.com/page/1/',
]
def parse(self, response):
for quote in response.css('div.quote'):
yield {
'text': quote.css('span.text::text').get(),
'author': quote.css('span small::text').get(),
'tags': quote.css('div.tags a.tag::text').getall(),
}
next_page = response.css('li.next a::attr(href)').get()
if next_page is not None:
yield response.follow(next_page, self.parse)
这个爬虫可以从 http://quotes.toscrape.com/page/1/ 开始,爬取每一页的名言,包括文本、作者和标签。结果将存储在 Scrapy 的默认数据解析器中。
Scrapy 是一个非常强大的网络爬虫框架,它的异步非阻塞式处理方式和自带数据解析器、去重等功能,可以帮助你高效地完成爬虫任务。同时,Scrapy 的灵活插件机制,也使得它可以适应不同的爬虫场景,并且具有可扩展性。