python - source - scrapy, cómo enviar múltiples solicitudes a un formulario
web scraping open source (1)
Antes que nada, definitivamente necesitas yield
para "disparar" múltiples solicitudes:
def start_requests(self):
with open(''C:/spiders/usps/zips.csv'') as fp:
for line in fp:
yield FormRequest("https://domain.com/url",
formdata={''address'':line, ''submit'':''Search''},
callback=self.after_submit,
dont_filter=True)
Además, no debe incluir FormRequest
en una lista, solo ceda la solicitud.
Ok, tengo un código de wroking aquí, estoy enviando 1 solicitud a un formulario y estoy recuperando todos los datos que necesito. Código:
def start_requests(self):
nubmers="12345"
submitForm = FormRequest("https://domain.com/url",
formdata={''address'':numbers,''submit'':''Search''},
callback=self.after_submit)
return [submitForm]
Ahora necesito enviar múltiples solicitudes a través del mismo formulario y recopilar datos para cada solicitud. Necesito recopilar datos para x números. Almacenaba todos los números en un archivo:
12345
54644
32145
12345
código:
def start_requests(self):
with open(''C:/spiders/usps/zips.csv'') as fp:
for line in fp:
submitForm = FormRequest("https://domain.com/url",
formdata={''address'':line,
''submit'':''Search''},callback=self.after_submit,dont_filter=True)
return [submitForm]
Este código también funciona, pero recopila los datos de la última entrada solo en el archivo. Necesito recopilar datos para cada fila / número en el archivo. Si pruebo el rendimiento en lugar de devolver el filtro se detiene y da este error:
if not request.dont_filter and self.df.request_seen(request):
exceptions.AttributeError: ''list'' object has no attribute ''dont_filter''