2017-11-21 1 views
0

私は、別のページに行くために治療を強制することに問題があります。私は、Operaのスケジュールを別々の月に取得しようとしています。治療は次のURLに行きたくない

私は必要な住所が、それぞれが次のようになります。「私は月のリストを作り、それらを反復しようとしましたが、何とかScrapyはそれを無視してきた理由です月

の」http://www.opera.krakow.pl/pl/repertuar/na-afiszu/ +名前。私は "next_page"によって収集されたすべてのURLを印刷しようとしましたが、すべて正しいです。

import scrapy 
from ..items import ShowItem, ShowItemLoader 
from scrapy.selector import HtmlXPathSelector 


class OperaSpider(scrapy.Spider): 
    name = "opera" 
    allowed_domains = ["http://www.opera.krakow.pl"] 
    start_urls = [ 
     "http://www.opera.krakow.pl/pl/repertuar/na-afiszu/listopad" 

] 
    shows_list_xpath = '//div[@class="row-fluid row-performance "]' 
    item_fields = { 
     'month':'.//ul[@class="nav nav-pills nav-repertuar"]/li[@class="active"]/a/text()', 
     'title': './/h2[@class="item-title"]/a/text()', 
     'time': './/div[@class="item-time vertical-center"]/div[@class="vcentered"]/text()', 
     'date': './/div[@class="item-date vertical-center"]/div[@class="vcentered"]/text()', 

} 


def parse(self, response): 

    selector = HtmlXPathSelector(response) 

    for show in selector.select(self.shows_list_xpath): 
     loader = ShowItemLoader(ShowItem(), selector=show) 

     for field, xpath in self.item_fields.iteritems(): 
      loader.add_xpath(field, xpath) 
     yield loader.load_item() 


    list = ["styczen", "luty" 
     , "marzec", "kwiecien" 
     , "maj", "czerwiec" 
     , "lipiec", "sierpien" 
     , "wrzesien", "pazdziernik" 
     , "listopad", "grudzien"] 

    for i in list: 
     next_page = ("http://www.opera.krakow.pl/pl/repertuar/na-afiszu/%s" % i) 
     yield scrapy.Request(next_page, callback=self.parse) 

答えて

0

scrapyチェックリクエストのURLの唯一netlocためallowed_domains、あなたはopera.krakow.plhttp://www.opera.krakow.plを変更する必要があります。

関連する問題