python - span - Scrapy: ¿Cuál es la forma correcta de usar start_requests()?
show scrapy version (1)
Así es como mi araña está configurada
class CustomSpider(CrawlSpider):
name = ''custombot''
allowed_domains = [''www.domain.com'']
start_urls = [''http://www.domain.com/some-url'']
rules = (
Rule(SgmlLinkExtractor(allow=r''.*?something/''), callback=''do_stuff'', follow=True),
)
def start_requests(self):
return Request(''http://www.domain.com/some-other-url'', callback=self.do_something_else)
Va a / some-other-url pero no / some-url. ¿Que esta mal aquí? La url especificada en start_urls es la que necesita enlaces extraídos y enviados a través del filtro de reglas, donde los que están en las solicitudes de inicio se envían directamente al analizador de elementos para que no tenga que pasar por los filtros de reglas.
De la documentación para start_requests
, anular start_requests
significa que las URL definidas en start_urls
se ignoran.
Este es el método que llama Scrapy cuando la araña se abre para raspar cuando no se especifican direcciones URL particulares. Si se especifican URL específicas, make_requests_from_url () se usa en su lugar para crear las Solicitudes.
[...]
Si desea cambiar las Solicitudes utilizadas para comenzar a raspar un dominio, este es el método para anular.
Si desea simplemente raspar desde / some-url, entonces elimine start_requests
. Si desea raspar desde ambos, agregue / some-url a la lista start_urls
.