Ich benutze scrapy-redis einfach, um einen verteilter Crawler zu bauen, muss Slave-Maschine Url Formular Master-Warteschlange URL lesen, aber es gibt ein Problem ist, dass ich zum url slave machine ist nach cPikle konvertiert daten, ich möchte url von redis-url-queue ist richtig, was schlägst du vor?Wie bekomme ich eine normale URL von redis anstatt durch url cPikle konvertiert?
Beispiel:
from scrapy_redis.spiders import RedisSpider
from scrapy.spider import Spider
from example.items import ExampleLoader
class MySpider(RedisSpider):
"""Spider that reads urls from redis queue (myspider:start_urls)."""
name = 'redisspider'
redis_key = 'wzws:requests'
def __init__(self, *args, **kwargs):
super(MySpider, self).__init__(*args, **kwargs)
def parse(self, response):
el = ExampleLoader(response=response)
el.add_xpath('name', '//title[1]/text()')
el.add_value('url', response.url)
return el.load_item()
MySpider die RedisSpider geerbt, als ich scrapy runspider myspider_redis.py laufen es nicht legal url tritt
scrapy-redis Github-Adresse: scrapy-redis
können Sie Protokolle teilen? – eLRuLL
Ja, ich kann Protokolle abrufen NotSupported: Nicht unterstütztes URL-Schema '': Kein Handler für dieses Schema verfügbar, die URL ist cPikle-Daten, die ich bekomme – rowele