Python Scrapy, comment définir un pipeline pour un article?
-
20-08-2019 - |
Question
J'utilise scrapy pour explorer différents sites. Pour chaque site, j'ai un élément (des informations différentes sont extraites)
Eh bien, par exemple, j'ai un pipeline générique (la plupart des informations sont les mêmes), mais maintenant, j'explore une réponse de recherche Google et le pipeline doit être différent.
Par exemple:
GenericItem
utilise GenericPipeline
Mais le GoogleItem
utilise GoogleItemPipeline
, mais lorsque l'araignée explore, il tente d'utiliser <=> au lieu de <=> .... comment puis-je spécifier le pipeline que Google araignée doit utiliser?
La solution
Désormais, un seul moyen consiste à vérifier le type d'élément dans le pipeline et à le traiter ou à le retourner & "tel quel &";
.pipelines.py :
from grabbers.items import FeedItem
class StoreFeedPost(object):
def process_item(self, domain, item):
if isinstance(item, FeedItem):
#process it...
return item
items.py :
from scrapy.item import ScrapedItem
class FeedItem(ScrapedItem):
pass