Я использую https://github.com/rolando/scrapy-redis, чтобы создать паук, который читает URL-адреса из списка Redis. Проблема заключается в том, что я хочу отправить уникальный идентификатор по каждой стороне URL. Чтобы я мог снова идентифицировать запись в db.Scrapy send variable вместе с URL-адресом для spider
Мой список в Redis выглядит следующим образом: http://google.com[someuniqueid] http://example.com[anotheruniqueid]
Scrapy-Redis по умолчанию читает лишь URL из Redis, который затем отправляется на паука.
Я модифицировал внутри: https://github.com/rolando/scrapy-redis/blob/master/scrapy_redis/spiders.py
И изменил эту функцию:
def next_request(self):
"""Returns a request to be scheduled or none."""
url = self.server.lpop(self.redis_key)
if url:
mm = url.split("[")
self.guid = mm[1].replace("]", "")
return self.make_requests_from_url(mm[0])
Это работает, я могу получить Guid внутри моего паука по телефону:
print self.guid
Проблема, однако, что он, кажется, смешивает руководство. У меня всегда нет правильного указателя для каждого URL-адреса.
Как отправить направляющую моему паук?
Вероятно, вы определено Guid в качестве общей переменной (за пределами от init, над ним). Поскольку async и только один способ сохранить значение. Просто догадаться – PascalVKooten
Где я должен это положить? :) – mjhd