推荐答案
// www.javascriptcn.com code example
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
for title in response.css('h1::text').getall():
yield {'title': title}本题详细解读
Scrapy 框架简介
Scrapy 是一个用于 Python 的快速、高级的 web 爬虫框架,用于抓取网站并从页面中提取结构化数据。它广泛应用于数据挖掘、信息处理或历史存档等领域。
安装 Scrapy
在开始使用 Scrapy 之前,需要先安装它。可以通过 pip 安装:
pip install scrapy
创建 Scrapy 项目
使用 Scrapy 创建一个新的爬虫项目:
scrapy startproject myproject
这将创建一个名为 myproject 的目录,其中包含 Scrapy 项目的基本结构。
编写爬虫
在 myproject/spiders 目录下创建一个新的 Python 文件,例如 myspider.py,并编写如下代码:
// www.javascriptcn.com code example
import scrapy
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
for title in response.css('h1::text').getall():
yield {'title': title}运行爬虫
在项目根目录下运行以下命令来启动爬虫:
scrapy crawl myspider
代码解析
name = 'myspider': 定义爬虫的名称。start_urls = ['http://example.com']: 定义爬虫开始抓取的 URL 列表。parse(self, response): 定义解析响应的方法。response是抓取到的网页内容。response.css('h1::text').getall(): 使用 CSS 选择器提取所有<h1>标签的文本内容。yield {'title': title}: 将提取的数据以字典形式返回。
数据存储
Scrapy 支持多种数据存储方式,如 JSON、CSV、数据库等。可以通过命令行参数指定输出格式:
scrapy crawl myspider -o output.json
这将把抓取到的数据保存到 output.json 文件中。
进一步学习
Scrapy 提供了丰富的功能和扩展性,如中间件、管道、信号等。建议阅读官方文档以深入了解其高级用法。