python - scrapy, how to send multiple requests to a form -


ok have wroking code here, sending 1 request form , getting data need. code:

 def start_requests(self):     nubmers="12345"     submitform = formrequest("https://domain.com/url",                              formdata={'address':numbers,'submit':'search'},                              callback=self.after_submit)     return [submitform] 

now need send multiple request through same form , collect data each request. need collect data x numbers. stored numbers file:

   12345    54644    32145    12345 

code:

def start_requests(self):     open('c:\spiders\usps\zips.csv') fp:         line in fp:             submitform = formrequest("https://domain.com/url",                                 formdata={'address':line,     'submit':'search'},callback=self.after_submit,dont_filter=true)     return [submitform] 

this code works collects data last entry in file only. need collect data each row/number in file. if try yield instead return scrapy stops , gives out error:

if not request.dont_filter , self.df.request_seen(request): exceptions.attributeerror: 'list' object has no attribute 'dont_filter' 

first of all, need yield "fire" multiple requests:

def start_requests(self):     open('c:\spiders\usps\zips.csv') fp:         line in fp:             yield formrequest("https://domain.com/url",                               formdata={'address':line, 'submit':'search'},                               callback=self.after_submit,                               dont_filter=true) 

also, shouldn't enclose formrequest list, yield request.


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -