2017-12-17 4 views
0

Ich bin ein Anfänger mit Scrapy, aber Lernen. Ich habe analysiert this page. und versuche, die Adresse von der Seite abzukratzen.Warum ist der scraptische Druck t n n dort, wo ich Text erwarten würde?

Ich habe dies in der scrapy Schale gemacht, so dass ich starten von:

scrapy shell https://www.marksandspencer.com/MSStoreDetailsView?storeId=10151&langId=-24&SAPStoreId=6952 

der gut arbeitet. Dann versuche ich, die Adresse zu analysieren mit:

response.xpath('//li[@class="address"]/text()').extract() 

Aber meine Ausgabe ist die folgende:

[ '\ n \ t \ t', ‚\ n \ t \ t \ n \ t \ t ']

Warum bin ich die Adresse nicht sehen kann, wie es auf der Seite erscheint:

BELFAST ABBEY CENTER, 1 Old Glenmount Straße Newtonabbey, Newton Abbey, BT36 7DN

Wie würde ich diese Adresse herausbekommen? Ich schätze jeden, der sich die Zeit nimmt zu antworten.

Antwort

1

Es gibt ein paar ein Fehler auf, wie Sie dieses Problem zu nähern:

  1. Wenn scrapy shell verwenden, müssen Sie die URL mit "" umgeben, weil das Terminal es als mehrere Prozesse interpretieren könnte wegen der Charakter & in der url:

    scrapy shell "https://www.marksandspencer.com/MSStoreDetailsView?storeId=10151&langId=-24&SAPStoreId=6952" 
    
  2. Ihre XPath nicht korrekt ist, weil mit /text() Sie den Text des jeweiligen Tag bekommen, und th unter li enthält nicht die gewünschten Informationen. Der Tag, das beinhaltet, dass Text auf die Kinder dieser li ist so könnten Sie:

    response.xpath('//li[@class="address"]//text()').extract() 
    

    oder

    response.xpath('//li[@class="address"]/p/text()').extract() 
    
Verwandte Themen