私の問題は次のとおりです。メイン ページにリスト (html - li) があり、リストのコンポーネントごとに別のページに入力し、情報を取得し、それを 1 つのアイテム要素にまとめて、他の要素とやり取りします。メイン ページ リストの要素 (html - li)。私はこの最初のコードを作成しましたが、私は Python、Scrapy の初心者であり、コードを作成するのが難しいことがわかりました。
私はこの解決策を得ましたが、メイン リスト要素ごとに 2 つの項目が生成されます。
class BoxSpider(scrapy.Spider):
name = "mag"
start_urls = [
"http://www.example.com/index.html"
]
def secondPage(self, response):
secondPageItem = CinemasItem()
secondPageItem['trailer'] = 'trailer'
secondPageItem['synopsis'] = 'synopsis'
yield secondPageItem
def parse(self, response):
for sel in response.xpath('//*[@id="conteudoInternas"]/ul/li'):
item = CinemasItem()
item['title'] = 'title'
item['room'] = 'room'
item['mclass'] = 'mclass'
item['minAge'] = 'minAge'
item['cover'] = 'cover'
item['sessions'] = 'sessions'
secondUrl = sel.xpath('p[1]/a/@href').extract()[0]
yield item
yield scrapy.Request(url=secondUrl, callback=self.secondPage)
'title'、'room'、'mclass'、'minAge'、'cover'、'sessions'、'trailer'、'synopsis' フィールドが入力された item 要素を 1 つだけ生成するのを手伝ってくれる人はいますか? 'title'、'room'、'mclass'、'minAge'、'cover'、'sessions' フィールドが入力された項目と、'trailer'、'synopsis' が入力された項目の代わりに?