scrapy爬取名人名言

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

1 创建爬虫项目,在终端中输入:

python 复制代码
scrapy startproject quotes

2 创建之后,在spiders文件夹下面创建爬虫文件quotes.py,内容如下:

python 复制代码
import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor


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

    rules = (
        Rule(LinkExtractor(allow='/page/\d+'), callback='parse_quotes', follow=True),
        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(),
                'tags': quote.css('.tag::text').extract_first()
            }

    def parse_author(selfself, 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
        })

目录结构如下:

3 运行爬虫

在终端中执行scrapy crawl quotes,结果如图所示:

到此,一个简单的爬虫就完成了。

相关推荐
Dxy12393102163 分钟前
python使用requests发送请求ssl错误
开发语言·python·ssl
gxchai12 分钟前
利用pythonstudio写的PDF、图片批量水印生成器,可同时为不同读者生成多组水印
python
ao_lang20 分钟前
剑指offer第五天
python·算法·cpp
这个男人是小帅39 分钟前
【GCN】 代码详解 (1) 如何运行【pytorch】可运行版本
人工智能·pytorch·python·深度学习·分类
python1561 小时前
Python Pandas内存管理技巧助力高效处理大数据
大数据·python·pandas
Python大数据分析@1 小时前
学习python中的pandas有没有好的教程推荐?
python·学习·pandas
哪 吒1 小时前
华为OD机试 - 无重复字符的元素长度乘积的最大值(Python/JS/C/C++ 2024 C卷 100分)
javascript·python·华为od
科研小达人2 小时前
Langchain调用模型使用FAISS
python·chatgpt·langchain·faiss
Biomamba生信基地2 小时前
jupyter如何切换内核
ide·python·jupyter
T0uken2 小时前
【ESP32+MicroPython】网络编程基础
网络·python·esp32