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
Post a Comment