我使用https://github.com/rolando/scrapy-redis來創建一個讀取來自Redis列表的URL的蜘蛛。我遇到的問題是我想在每個網址一側發送一個唯一的ID。這樣我可以再次識別db中的條目。Scrapy將變量和URL一起發送給蜘蛛
我在Redis的名單看起來是這樣的:每默認 http://google.com[someuniqueid] http://example.com[anotheruniqueid]
Scrapy,Redis的來自然後被髮送到蜘蛛的Redis只讀取的URL。
我修改裏面: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
的問題不過是它似乎混淆了guid的。我並不總是每個url都有正確的guid。
我應該怎樣把這個guid寄給我的蜘蛛?
也許你定義(外GUID作爲一個共享變量的init,在它之上)。由於異步和只有一種方法來保持價值。只是猜測 – PascalVKooten
我應該把它放在哪裏? :) – mjhd