Dans le terminal, j'ai couruExiste-t-il un moyen de traiter l'objet scrapy.Request dans le shell?
scrapy startproject tutorial
J'ai créé l'araignée suivante dans le dossier spiders
import scrapy
class QuotesSpider(scrapy.Spider):
name = "quotes"
start_urls = ['http://quotes.toscrape.com/page/1/']
Dans le terminal, j'ai couru
scrapy shell 'http://quotes.toscrape.com/page/1/'
Tout cela fonctionne bien comme dans le shell Python qui s'ouvre je reçois
>>> response
<200 http://quotes.toscrape.com/page/1/>
Maintenant, j'ai couru
>>> next_page = response.css('li.next a::attr(href)').extract_first()
>>> next_page
'/page/2/'
>>> response.follow(next_page)
<GET http://quotes.toscrape.com/page/2/>
>>> type(response.follow(next_page))
<class 'scrapy.http.request.Request'>
Je voudrais obtenir un nouvel objet Response
dans la coquille, sur la base du lien vers next_page
. Est-ce possible? Toute aide est très appreciée.
J'ai déjà essayé ci-dessous, mais je n'ai pas réussi à corriger l'erreur.
>>> scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware.process_request(response.follow(next_page), "quotes")
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: process_request() missing 1 required positional argument: 'spider'