2016-04-05 18 views
0

İlk örümcekimi çalıştırmaya çalışıyorum ama mücadele ediyorum. Koşmayı başarabilirim ama hiçbir sayfa bulamıyor. Herhangi bir fikri varsa, onlar çok takdir edilecektir. benim kodudur: öncedenÖrümcek hiçbir sayfayı bulamıyor

from scrapy.spiders import Spider 
from scrapy.selector import Selector 

from second_hotel.items import Website 


class secondhotelSpider(Spider): 
    name = "second_hotel_spider.py" 
    allowed_domains = ["uk.hotels.com"] 
    start_urls = [ 
     "https://uk.hotels.com/hotel/details.html?FPQ=6&WOE=1&q-localised-check-out=10/04/2017&WOD=1&q-room-0-children=0&pa=1&tab=description&JHR=9&q-localised-check-in=03/04/2017&hotel-id=128604&q-room-0-adults=2&YGF=14&MGT=7&ZSX=0&SYE=3", 
     "https://uk.hotels.com/hotel/details.html?FPQ=6&WOE=1&q-localised-check-out=04/04/2016&WOD=7&q-room-0-children=0&pa=1&tab=description&JHR=8&q-localised-check-in=03/04/2016&hotel-id=424807&q-room-0-adults=2&YGF=2&MGT=1&ZSX=0&SYE=3", 
    ] 

    def parse(self, response): 

     sel = Selector(response) 
     sites = sel.xpath('//ul[@class="directory-url"]/li') 
     items = [] 

     for site in sites: 
      item = Website() 
      item['name'] = site.xpath('a/text()').extract() 
      item['link'] = site.xpath('a/@href').extract() 
      item['description'] = site.xpath('text()').re('-\s[^\n]*\\r') 
      items.append(item) 

     print items 
     return items 

teşekkürler.

+0

ile unsurlarını içermez? [] - boş liste –

+0

Hayır, listeyi yazdırmıyor. –

+0

Bu, sahip olduğunuz bütün kod nedir? Varsa, yöntemi çağırmazsınız. –

cevap

0

xpath ifadenizde bir hata var, bu nedenle sites değişkeni boş.

Sen parse yöntemde scrapy shell

scrapy shell 'https://uk.hotels.com/hotel/details.html?FPQ=6&WOE=1&q-localised-check-out=04/04/2016&WOD=7&q-room-0-children=0&pa=1&tab=description&JHR=8&q-localised-check-in=03/04/2016&hotel-id=424807&q-room-0-adults=2&YGF=2&MGT=1&ZSX=0&SYE=3' 
In [4]: response.xpath('//ul[@class="directory-url"]/li') 
Out[4]: [] 

veya inspect_response(response, self) aracılığıyla xpath kontrol edebilir.

from scrapy.shell import inspect_response 
inspect_response(response, self) 

start_urls sayfalar o en azından bu baskı mu [@class="directory-url"]