Por predefinição, o Scrapy atribui slots de download com base no domínio do URL do pedido. Dar um proxy HTTP a um pedido não transforma esse URL no nome de anfitrião do proxy. Por isso, pedidos a sites diferentes podem manter slots diferentes enquanto partilham um único intermediário.

O AutoThrottle ajusta o atraso de cada slot com base na latência de download observada. O limite padrão de concorrência por domínio e o atraso mínimo de download continuam a aplicar-se.

Verifique o agrupamento antes de alterar o algoritmo

Um middleware personalizado pode atribuir request.meta["download_slot"], substituindo a seleção normal de slot. Algumas extensões de proxy usam o seu próprio agrupamento. Inspecione essas definições se sites não relacionados parecerem partilhar um único limitador.

Inversamente, atribuir um slot diferente a cada proxy pode permitir que vários proxies contactem o mesmo destino em simultâneo. Isso pode anular um limite à escala do site que o crawler devia respeitar. Escolha a chave do slot de acordo com o recurso protegido.

O atraso inclui o caminho utilizado

O Scrapy mede a latência desde o envio do pedido até à receção dos cabeçalhos HTTP. Um pedido transportado por um proxy pode incluir nessa observação o atraso de fila e de reencaminhamento do intermediário. O AutoThrottle não obtém um tempo de processamento separado apenas da origem.

Aumentar a concorrência não faz com que essa medição isole o site. Mantenha a cortesia para com o destino e a capacidade do proxy como limites separados quando ambos importam. Um proxy partilhado pode precisar de um orçamento de concorrência adicional entre os slots dos destinos, enquanto cada destino mantém a sua própria política de ritmo.

Artigos relacionados