0
def parse(self,response):
print("parse!!!!!!!!!!!!!!!!!!!")
yield scrapy.Request("http://xx.com", callback=self.parseHeader,meta={'item': item})
yield scrapy.Request("http://xx.com ", callback=self.parseBody,meta={'item': item})
yield scrapy.Request("http://xx.com ", callback=self.parseFooter,meta={'item': item})
def parseHeader(self,response):
print("parseHeader!!!!!!!!!!!!!!!!!!!")
item = ItemHeader()
#...
yield item
def parseBody(self,response):
print("parseBody!!!!!!!!!!!!!!!!!!!")
item = ItemBody()
#...
yield item
def parseFooter(self,response):
print("parseFooter!!!!!!!!!!!!!!!!!!!")
item = ItemFooter()
#...
yield item
上記のコードを実行すると、次の結果が得られます。 現在の結果複数のメソッドを実行する方法
parse!!!!!!!!!!!!!!!!!!!
↓
parseHeader!!!!!!!!!!!!!!!!!!!
↓
pipeline
↓
Closing spider (finished)
「parseHeader」の唯一の方法は、その下に が、結果は変わりません返すように 変更収率は実行されません実行されます。
上記の結果を次のように変更したいと思います。
parse!!!!!!!!!!!!!!!!!!!
↓
parseHeader!!!!!!!!!!!!!!!!!!!
↓
pipeline
↓
parseBody!!!!!!!!!!!!!!!!!!!
↓
pipeline
↓
parseFooter!!!!!!!!!!!!!!!!!!!
↓
pipeline
↓
Closing spider (finished)
どうすればいいですか? ヒントになることが分かっている場合は教えてください。
をいただき、ありがとうございますあなたのコメント。十分な説明はありませんでしたが、parse_bodyにはfor文があります あなたが教えているように、パイプラインの実行は声明の始まりに過ぎませんでした。 – sukho
声明のために?投稿できますか?いつどこでパイプラインが実行されているのかを理解しようとするなら、[architectual overview](https://doc.scrapy.org/en/latest/topics/architecture.html)を見直すことをお勧めします。 – Granitosaurus