In scrapy I get an error message exceptions.AttributeError: 'unicode' object has no attribute 'dont_filter'. After searching, I found this answer (which made sense, since it was the only bit of code that I changed before I received the error), according to which I changed my code. I changed start_requestto get the values in the list, and not return it in its entirety, but I still get it. Any ideas?
def start_requests(self):
connection = pymongo.Connection(settings['MONGODB_SERVER'],
settings['MONGODB_PORT'])
db = connection[settings['MONGODB_DB']]
collection = db[settings['MONGODB_COLLECTION']]
for el in [i['url'] for i in collection.find({}, {'_id':0, 'url':1})]:
yield el
I checked the other parts of the code to confirm that everything else is in order.
Traceback:
[-] Unhandled Error
Traceback (most recent call last):
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/crawler.py", line 93, in start
self.start_reactor()
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/crawler.py", line 130, in start_reactor
reactor.run(installSignalHandlers=False)
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/twisted/internet/base.py", line 1192, in run
self.mainLoop()
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/twisted/internet/base.py", line 1201, in mainLoop
self.runUntilCurrent()
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/twisted/internet/base.py", line 824, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/utils/reactor.py", line 41, in __call__
return self._func(*self._a, **self._kw)
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/core/engine.py", line 120, in _next_request
self.crawl(request, spider)
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/core/engine.py", line 176, in crawl
self.schedule(request, spider)
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/core/engine.py", line 182, in schedule
return self.slot.scheduler.enqueue_request(request)
File "/home/myName/scrapy-test/venv/local/lib/python2.7/site-packages/scrapy/core/scheduler.py", line 48, in enqueue_request
if not request.dont_filter and self.df.request_seen(request):
exceptions.AttributeError: 'unicode' object has no attribute 'dont_filter'