2017-04-14 4 views
1

Mit der Art, wie ich hier Code geschrieben habe ich Ergebnisse von verschiedenen Seiten, aber aus irgendeinem Grund wirft diese Website einen Fehler. Da ich ein neuer Coder im Bereich Scrapy bin, habe ich nicht die Möglichkeit, das Problem selbst zu lösen. Xpaths sind in Ordnung. Ich füge, was ich im Terminal zu sehen zusammen mit dem Code:Scrapy Throws Attribut Fehler

items.py

import scrapy 
class OlxItem(scrapy.Item): 
    Title = scrapy.Field() 
    Url = scrapy.Field() 

olxsp.py

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.linkextractors import LinkExtractor 

class OlxspSpider(CrawlSpider): 
    name = "olxsp" 
    allowed_domains = ['olx.com.pk'] 
    start_urls = ['https://www.olx.com.pk/'] 

    rules = [Rule(LinkExtractor(restrict_xpaths='//div[@class="lheight16 rel homeIconHeight"]')), 
      Rule(LinkExtractor(restrict_xpaths='//li[@class="fleft tcenter"]'), 
      callback='parse_items', follow=True)] 

    def parse_items(self, response): 
     page=response.xpath('//h3[@class="large lheight20 margintop10"]') 
     for post in page: 
      AA=post.xpath('.//a[@class="marginright5 link linkWithHash detailsLink"]/span/text()').extract() 
      CC=post.xpath('.//a[@class="marginright5 link linkWithHash detailsLink"]/@href').extract() 
      yield {'Title':AA,'Url':CC} 

settings.py

BOT_NAME = 'olx' 
SPIDER_MODULES = ['olx.spiders'] 
NEWSPIDER_MODULE = 'olx.spiders' 

ROBOTSTXT_OBEY = True 

Bild des Terminals nach dem Scrapy fertig ausgeführt: enter image description here

+0

Könnten Sie auch Ihre Scrapy-Projekteinstellungen posten? Stellen Sie außerdem sicher, dass die von Ihnen geposteten Rückverfolgungen und Fehler Texte sind und keine Screenshots (die nicht durchsucht werden können). Vielen Dank. – alecxe

+0

Danke Sir Alecxe, für Ihre freundliche Antwort. Ich habe nichts in settings.py gemacht, sondern so gehalten wie es ist. Wie auch immer, fügen Sie das auch in der Beschreibung hinzu. – SIM

Antwort

1
  1. Sie haben ROBOTSTXT_OBEY = True die scrapy für die robots.txt Datei des Domains zu überprüfen, sagt es kriecht, es kann so bestimmen, wie auf die verlinkten Seiten höflich zu sein.

  2. Sie erlauben eine andere Domain in allowed_domains = ['www.olx.com'] als die, die Sie tatsächlich kriechen. Wenn Sie nur olx.com.pk Seiten crawlen möchten, haben Sie die allowed_domains in ['olx.com.pk'] geändert. Wenn Sie nicht wissen, welche Websites gecrawlt werden, entfernen Sie einfach das Attribut allowed_domains.

+0

Danke eLRuLL, für Ihre Antwort. Die Erfüllung beider Parameter gemäß Ihrem Vorschlag konnte ebenfalls kein Ergebnis bringen. – SIM

+0

Also, was ist der neue Fehler? – eLRuLL

+0

Es tut mir leid, nicht in der Nähe meines PCs gewesen zu sein. Jetzt zeigt es "Wrapped Request-Objekt hat keinen Attributtyp. Attribut Fehler 14. – SIM

Verwandte Themen