在 spiders 文件夹当中创建一个名称为“crawl.py”的爬虫文件,然后在该文件中,首先创建
QuotesSpider 类,该类需要继承自 scrapy.Spider 类,然后重写 start_requests()方法实现
网络的请求工作,接着重写 parse()方法实现向文件中写入获取的 html 代码。示例代码如下:
#_*_coding:utf-8_*_
# 作者 :liuxiaowei
# 创建时间 :2/17/22 11:18 AM
# 文件 :crawl.py
# IDE :PyCharm
# 导入框架 import scrapyclass QuotesSpider(scrapy.Spider):
# 定义爬虫名称
name = 'quotes_1'
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:
# 向文件中写入获取的 HTML 代码
f.write(response.body)
# 输出保存文件的名称
self.log('Saved file %s' % filename)
复制
在运行 Scrapy 所创建的爬虫项目时,需要在命令窗口输入“scrapy crawl quotes_1“,其
中”quotes_1“是自己定义的爬虫名称。本人使用第三方开发工具 PyCharm,所以需要在底
部的 Terminal 窗口中输入运行爬虫的命令行,运行完成以后如下图所示:
liuxiaowei@MacBookAir spiders % scrapy crawl quotes_1 # 运行爬虫的命令行
2022-02-17 11:23:47 [scrapy.utils.log] INFO: Scrapy 2.5.1 started (bot:
scrapyDemo)2022-02-17 11:23:47 [scrapy.utils.log] INFO: Versions: lxml