scrapy 快速入门

本文介绍了Scrapy的安装、快速启动爬虫、设置起始链接、数据提取、编写爬虫、页面跳转及scrapy命令的使用。通过实例展示了如何创建和运行Scrapy爬虫,以及如何处理编码问题。
摘要由CSDN通过智能技术生成

安装Scrapy

Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv、json等文件中。

首先我们安装Scrapy。

pip install scrapy

在Windows上安装时可能会出现错误,提示找不到Microsoft Visual C++。这时候我们需要到它提示的网站visual-cpp-build-tools下载VC++ 14编译器,安装完成之后再次运行命令即可成功安装Scrapy。

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

快速开始

第一个爬虫

以下是官方文档的第一个爬虫例子。可以看到,和我们手动使用request库和BeautifulSoup解析网页内容不同,Scrapy专门抽象了一个爬虫父类,我们只需要重写其中的方法,就可以迅速得到一个可以不断爬行的爬虫。

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)

上面的爬虫有几个地方需要解释一下:

  • 爬虫类的name属性,用来标识爬虫,该名字在一个项目必须是唯一的。
  • start_requests()
    方法,必须返回一个可迭代的列表(可以是列表,也可以是生成器),Scrapy会从这些请求开始抓取网页。
  • parse()
     方法用于从网页文本中抓取相应内容,我们需要根据自己的需要重写该方法。

开始链接

在上面的例子中使用start_requests

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值