Scrapy1.7入门中文教程(一)

本教程介绍如何使用Scrapy1.7框架创建工程和首个爬虫,包括工程搭建、请求发送、响应处理及数据保存过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scrapy1.7入门中文教程(一)

Scrapy是一个能被用来爬网站、截取数据的应用框架,在数据挖掘、信息处理等方面有着很广泛的应用。

创建工程

切换至合适的目录后,在终端输入,scrapy会帮你创建一个名叫tutorial的工程

$ scrapy startproject tutorial

各级文件及其作用如下
在这里插入图片描述

创建你的第一个爬虫

在tutorial/spiders目录下创建一个名叫quotes_spider.py的文件,里面写上这样的代码。

```python
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)

如你所见,我们的Spider子类scrapy.Spider并定义了一些属性和方法:

name:标识Spider。它在项目中必须是唯一的,也就是说,你不能为不同的Spiders设置相同的名称。
start_requests():必须返回一个可迭代的请求(你可以返回一个请求列表或编写一个生成器函数),Spider将开始从中爬行。后续请求将从这些初始请求中连续生成。
parse():将调用一个方法来处理为每个请求下载的响应。 response参数是TextResponse的一个实例,它保存页面内容并具有处理它的其他有用方法。
parse()方法通常会解析响应,提取已删除的数据作为dicts,并查找要遵循的新URL以及从中创建新请求(Request)。

运行爬虫

回到工程的最顶层目录,运行:

$scrapy crawl quotes

⚠️注意,这里的quotes上我们刚才命名的名字。
然后爬虫会向网站发送请求,出现类似这样的东西
在这里插入图片描述

查看结果

可以看到,tutorial目录下出现了两个json文件,里面就是我们爬下来的内容。由于parse()内没有对response做任何处理,所以这里爬下来的就是网页源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值