python-CrawlSpider爬取名人名言

本文介绍了一个使用Scrapy框架爬取名人名言网站的例子。通过定义爬虫类和规则,实现了自动抓取名言及其作者信息的功能。

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

爬取名人名言(http://quotes.toscrape.com)

import scrapy
from scrapy.spiders import CrawlSpider,Rule
from scrapy.linkextractors import LinkExtractor


class Quotes(CrawlSpider):
    name = 'quote'
    allowed_domains = ['quotes.toscrape.com']
    start_urls = ['http://quotes.toscrape.com/']

    # 设定规则
    rules = (
        # 对于quotes内容页URL,调用parse_quotes处理
        # 并以此规则跟进获取的链接
        Rule(LinkExtractor(allow='/page/\d+'), callback='parse_quotes',follow=True),
        # 对于author内容页URL,调用parse_author处理,提取数据
        Rule(LinkExtractor(allow='/author/\w+'), callback='parse_author')
    )

    # 提取内容页数据方法
    def parse_quotes(self,response):
        for quote in response.css('.quote'):
            yield {
                'content':quote.css('.text::text').extract_first(),
                'author':quote.css('.author::text').extract_first(),
                'tegs':quote.css('.tag::text').extract()
            }

    # 获取作者数据方法
    def parse_author(self,response):
        name = response.css('.author-title::text').extract_first()
        author_born_date = response.css('.author_born_date::text').extract_first()
        author_born_location = response.css('.author_born_location::text').extract_first()
        author_description = response.css('.author_description::text').extract_first()

        return ({
            'name':name,
            'author_born_date':author_born_date,
            'author_born_location':author_born_location,
            'author_description':author_description
        })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值