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)