J'essaye d'obtenir le code de statut de demande avec le scrapy et le scrapy-splash, ci-dessous est le code d'araignée.comment obtenir le code de statut autre que 200 de scrapy-splash
class Exp10itSpider(scrapy.Spider):
name = "exp10it"
def start_requests(self):
urls = [
'http://192.168.8.240:8000/xxxx'
]
for url in urls:
#yield SplashRequest(url, self.parse, args={'wait': 0.5, 'dont_redirect': True},meta={'handle_httpstatus_all': True})
#yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True})
yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True,'splash': {
'args': {
'html': 1,
'png': 1,
}
}
}
)
def parse(self, response):
input("start .........")
print("status code is:\n")
input(response.status)
Mon départ url http://192.168.8.240:8000/xxxx
est une URL de code d'état 404, il y a threee sortes de façon à demander à:
la première est:
yield SplashRequest(url, self.parse, args={'wait': 0.5, 'dont_redirect': True},meta={'handle_httpstatus_all': True})
le second est:
yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True})
le troisième est:
yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True,'splash': { 'args': { 'html': 1, 'png': 1, } } } )
Seule la deuxième demande façon yield scrapy.Request(url, self.parse, meta={'handle_httpstatus_all': True})
peut obtenir le code d'état 404
, le premier et le troisième à la fois obtenir le code d'état 200
, c'est-à-dire après que j'essaie d'utiliser scrapy -splash, je ne peux pas obtenir le bon code de statut 404
, pouvez-vous m'aider?
J'essaie d'utiliser le code ci-dessous avec http_status_from_error_code = True, mais échoue toujours. '' 'rendement scrapy.Request (url, self.parse, meta = { 'handle_httpstatus_all': True, 'splash': { 'args': { 'html': 1, '': 1 .png, }, 'magic_response': Il est vrai 'http_status_from_error_code': True }} ) '' ' –
Pourquoi ne pas utiliser' SplashRequest'? C'est la manière recommandée d'utiliser Splash avec Scrapy. –
J'essaie d'utiliser SplashRequest avec le code ci-dessous, mais échoue toujours.'yield SplashRequest (url, self.parse, args = {'wait': 0.5, 'dont_redirect': vrai}, meta = {'handle_httpstatus_all': True}) 'Je l'utilise pas correctement? –