0
それは非常に自明な質問ですが、私はScrapyには新しいです。私は自分の問題の解決策を見つけようとしましたが、このコードで何が間違っているのか分かりません。Scrapyでdivを反復処理する方法は?
私の目標は、指定されたウェブサイトからすべてのオペラショーをスクラップすることです。すべてのショーのデータは、1つのdiv内にあり、クラス「行 - 流体行 - パフォーマンス」を有する。私はそれを取得するためにそれらを反復しようとしていますが、動作しません。それは私に各繰り返しの最初のdivの内容を与えます(私は19x倍の同じ項目を表示するのではなく、同じ番組を取得しています)。
アドバイスありがとうございます!
import scrapy
from ..items import ShowItem
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"
]
def parse(self, response):
divs = response.xpath('//div[@class="row-fluid row-performance "]')
for div in divs:
item= ShowItem()
item['title'] = div.xpath('//h2[@class="item-title"]/a/text()').extract()
item['time'] = div.xpath('//div[@class="item-time vertical-center"]/div[@class="vcentered"]/text()').extract()
item['date'] = div.xpath('//div[@class="item-date vertical-center"]/div[@class="vcentered"]/text()').extract()
yield item
".//" worked、thanks :) – Grevioos
お手数ですが、これが正しい答えとして表示されていれば助かります。ありがとう。 –