tutorial source scraping open library example crawling crawler python forms web-scraping scrapy

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''