Bilder mit kratzigen Bildern herunterladen

Ich fange mit Schrott an, und ich habe erstes Problem. Es lädt Bilder herunter. Also das ist meine Spinne.

from scrapy.contrib.spiders import CrawlSpider, Rule from scrapy.selector import HtmlXPathSelector from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor from example.items import ProductItem from scrapy.utils.response import get_base_url import re class ProductSpider(CrawlSpider): name = "product" allowed_domains = ["domain.com"] start_urls = [ "http://www.domain.com/category/supplies/accessories.do" ] def parse(self, response): hxs = HtmlXPathSelector(response) items = [] sites = hxs.select('//td[@class="thumbtext"]') number = 0 for site in sites: item = ProductItem() xpath = '//div[@class="thumb"]/img/@src' item['image_urls'] = site.select(xpath).extract()[number] item['image_urls'] = 'http://www.domain.com' + item['image_urls'] items.append(item) number = number + 1 return items 

Wenn ich ITEM_PIPELINES und IMAGES_STORE in settings.py zitiere, ITEM_PIPELINES ich die richtige URL für das Bild, das ich herunterladen möchte (Kopie in den Browser kopieren).

  • Wie aktualisiere man den Titel mit Matplotlib mit Animation?
  • Wie kann ich eine Funktion in Python (mit Matplotlib) zurückgeben?
  • Wie schreibe ich an die Konsole in Google App Engine?
  • PYRO4 - Errno 10061 Verbindung abgelehnt
  • Überwachen von Webseiten, die mit Internet Explorer, Opera, Chrome, Firefox und Safari in Python besucht wurden
  • Überschreiben Sie eine Methode auf Instanzebene
  • Aber wenn ich das beziehe, bekomme ich folgende Fehler:

     raise ValueError('Missing scheme in request url: %s' % self._url') exceptions.ValueError: Missing scheme in request url:h 

    Und ich kann meine Bilder nicht herunterladen.

    Ich habe den ganzen Tag gesucht und fand nichts hilfreiches.

  • Messen der Zeit, die es braucht, damit eine Funktion in Python ausgeführt und ausgeführt wird
  • Python RandomForest - Unbekannter Label Error
  • Wie kann ich die Qualität eines verkleinerten Bildes in der Python Imaging Library anpassen?
  • Kann nicht auf Google App Engine Dashboard zugreifen und Python App hochladen
  • Verständnis matplotlib.subplots python
  • Wie kann ich python __version__ mit git umschreiben?
  • 2 Solutions collect form web for “Bilder mit kratzigen Bildern herunterladen”

    Ich denke, die Bild-URL, die Sie gekratzt haben, ist relativ. Um die absolute URL zu erstellen, verwenden Sie urlparse.urljoin :

     def parse(self, response): ... image_relative_url = hxs.select("...").extract()[0] import urlparse image_absolute_url = urlparse.urljoin(response.url, image_relative_url.strip()) item['image_urls'] = [image_absolute_url] ... 

    Habe keine ITEM_PIPELINES benutzt, aber die Docs sagen:

    In einer Spinne kratze du ein Item und legst die URLs seiner Bilder in ein image_urls Feld.

    Also, Item ['image_urls' sollte eine Liste von Bild-URLs sein. Aber Ihr Code hat:

     item['image_urls'] = 'http://www.domain.com' + item['image_urls'] 

    Also, ich denke, es iteriert Ihre einzelne URL char von char – mit jedem als URL.

    Ich denke, dass Sie möglicherweise Ihre Image-URL in einer Liste zum Item:

     item['image_urls'] = [ 'http://www.domain.com' + item['image_urls'] ] 
    Python ist die beste Programmiersprache der Welt.