【python系列之scrapy爬虫一】-scrapy的基础使用

Scrapy 是一个强大的 Python 框架,用于从网站抓取数据,尤其适合构建爬虫程序。它可以自动化地抓取网站数据并对数据进行解析和处理,支持多线程并发请求、数据存储等功能。

安装 Scrapy
首先,你需要安装 Scrapy。可以通过 pip 安装:

pip install scrapy

创建 Scrapy 项目
创建一个 Scrapy 项目:

scrapy startproject myproject

这会创建一个名为 myproject 的目录,并在其中生成一些默认的文件结构。

进入项目目录:

cd myproject

你的项目结构如下:

myproject/
    scrapy.cfg
    myproject/
        __init__.py
        items.py
        middlewares.py
        pipelines.py
        settings.py
        spiders/
            __init__.py

编写一个 Spider
Spider 是 Scrapy 的核心,用来定义如何抓取一个网站,如何提取网页中的数据,和如何跟踪网站的链接。

创建一个 Spider:

在 myproject/spiders 目录中,创建一个 Python 文件,比如 example_spider.py,并编写如下代码:

import scrapy

class ExampleSpider(scrapy.Spider):
    name = "example"
    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(),
            }

        # Follow pagination links (go to next page)
        next_page = response.css('li.next a::attr(href)').get()
        if next_page is not None:
            yield response.follow(next_page, self.parse)

解释:

start_urls: 定义开始抓取的 URL 列表。
parse: 该方法是 Scrapy 用来解析网页的回调方法。它从响应中提取数据并返回。这里用的是 CSS 选择器来提取数据。
response.follow(): 用于处理分页,抓取下一页数据。
运行 Spider
在项目根目录下,通过以下命令运行 Spider:

scrapy crawl example

这将启动 Spider,并抓取指定的 URL 数据。你将看到抓取的日志输出。

存储抓取的数据
如果你希望将抓取的数据存储到文件中(如 CSV、JSON 或 XML),可以使用 -o 参数:

scrapy crawl example -o quotes.json

这将把抓取的数据输出到 quotes.json 文件中。

Scrapy 的主要功能

  1. 选择器(Selectors)
    Scrapy 提供了两种选择器:

CSS 选择器:通过 response.css() 来提取页面数据。
XPath 选择器:通过 response.xpath() 来提取页面数据。
2. 请求(Requests)
Scrapy 使用 scrapy.Request 来发送 HTTP 请求,并且可以通过回调函数(callback)来处理响应数据。你可以在 parse() 方法中处理数据,也可以定义其他方法来处理不同的页面或请求。

  1. 中间件(Middleware)
    中间件可以在请求和响应之间进行处理。例如,可以用来处理请求头、代理、用户代理、错误处理等。

  2. 管道(Pipelines)
    管道是用于处理抓取到的数据的组件。它们可以用来清理、验证、存储抓取的数据。

  3. 设置(Settings)
    settings.py 文件用于配置 Scrapy 的各项功能。例如,可以在这个文件中配置下载延迟、并发请求数量、用户代理、日志级别等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值