Scrapy(一)安装&简单实用

本文详细介绍如何使用Scrapy框架进行网站爬取,包括环境搭建、项目创建、编写爬虫及运行流程。通过实例演示,从零开始抓取quotes.toscrape.com网站的数据,包括名言、作者和标签等信息,并实现自动翻页。

Scrapy(一)安装&简单实用

环境

  1. Python 3.7.4
  2. pip 19.3.1
  3. Scrapy 1.8.0

安装 Scrapy

// 使用 pip 命令查看 python包的安装目录
pip --version
// c:\users\eminxta\appdata\local\programs\python\python37-32\lib\site-packages\
// 查看目录下有没有 Scrapy 包

// 安装命令
pip install scrapy
// 安装完之后会看到依赖了很多包

创建项目

scrapy startproject scrapyone

目录结构

image

编写项目

  1. 编写一个 spider 去获取网站 quotes.toscrape.com 的内容
  2. 打开 quotes.toscrape.com 网站观察 html 源码,关键信息是:(1)名言,(2)作者,(3)标签,(4)下一页。需求是获取所有关键信息,并且自动获取下一页
// 名言
<div class="quote" ...
    <span class="text" ...
        "名言XXXX"

// 作者
<span>
    <small class="author">
             timing

// 标签
<div class="tags">
    <a class="tag" href="XXXX">
    <a class="tag" href="xxxx">

// 下一页
<nav>
    <ul class="pager">
        <li class="next">
            <a href="下一页">

  1. 添加文件 /spiders/quotes_spider.py
import scrapy

class QuotesSpider(scrapy.Spider):
    name = "quotes"

    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').extract_first(),
                'author': quote.css('small.author::text').extract_first(),
                'tags': quote.css('div.tags a.tag::text').extract_first(),
            }
        
        next_page = response.css('li.next a::attr(href)').extract_first()
        if next_page is not None:
            next_page = response.urljoin(next_page)
            yield scrapy.Request(next_page, callback=self.parse)

运行项目

在项目的根目录 /scrapyone 运行一下命令

//命令, 指定 spider 的名字, 输出结果
scrapy crawl quotes -o quotes.json

在当前项目目录下会有个一个 quotes.json 的结果文件

image

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值