【发布时间】:2020-11-23 16:31:18
【问题描述】:
我正在尝试在网站上抓取一些信息:http://quotes.toscrape.com/
但是我找不到刮掉所有页面的方法,脚本只是刮掉第一页,我不明白我做错了什么。
到目前为止,这是我的脚本:
import scrapy
from ..items import QuotetutorialItem
class QuoteSpider(scrapy.Spider):
name = 'quotes'
page_number = 2
start_urls = ['http://quotes.toscrape.com/page/1/']
def parse(self, response):
items = QuotetutorialItem()
all_div_quotes = response.css('div.quote')
for quotes in all_div_quotes:
title = quotes.css('span.text::text').extract()
author = quotes.css('.author::text').extract()
tags = quotes.css('.tag::text').extract()
items['title'] = title
items['author'] = author
items['tags'] = tags
yield items
next_page = 'http://quotes.toscrape.com/page/'+ str(QuoteSpider.page_number) + '/'
if QuoteSpider.page_number < 11:
QuoteSpider.page_number += 1
yield response.follow(next_page, callback = self.parse)
然后我在终端输入scrapy crawl quote,它只给我第一页上的信息。
有什么想法吗?
谢谢?
【问题讨论】:
标签: python python-3.x web-scraping scrapy