Scrapy(一)安装&简单实用

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值