Dois-je créer un pipeline pour enregistrer des fichiers avec de la gratte?
J'ai besoin d'enregistrer un fichier (.pdf), mais je ne suis pas sûr de comment le faire. J'ai besoin de l'enregistrer .des fichiers pdf et de les stocker dans une telle manière qu'ils sont organisés dans des répertoires comme ils sont stockés sur le site, je suis de grattage.
De ce que je peux recueillir j'ai besoin de faire un pipeline, mais ce que je comprends de pipelines enregistrer "Articles" et les "éléments" sont tout simplement des données de base comme les chaînes de caractères/chiffres. Est enregistrement de fichiers à une bonne utilisation des pipelines, ou devrais-je enregistrer le fichier dans d'araignée à la place?
source d'informationauteur John Lotacs
Vous devez vous connecter pour publier un commentaire.
Oui et non[1]. Si vous allez chercher un fichier pdf, il sera stocké dans la mémoire, mais si le pdf ne sont pas assez grand pour remplir votre mémoire disponible de sorte qu'il est ok.
Vous pourriez enregistrer le pdf dans l'araignée rappel:
Si vous choisissez de le faire dans un pipeline:
[1] une autre approche pourrait être seulement de stocker les fichiers pdf' url et utiliser un autre processus pour récupérer les documents sans mise en mémoire tampon dans la mémoire. (par exemple,
wget
)Il y a un FilesPipeline que vous pouvez utiliser directement, en supposant que vous avez déjà le fichier de l'url, le lien montre comment utiliser FilesPipeline:
https://groups.google.com/forum/print/msg/scrapy-users/kzGHFjXywuY/O6PIhoT3thsJ
C'est un outil parfait pour le travail. La façon Scrapy fonctionne est que vous avez des araignées qui transforment les pages web en données structurées(des éléments). Les Pipelines sont des post-processeurs, mais ils utilisent le même asynchrone de l'infrastructure comme les araignées, donc il est parfait pour récupérer des fichiers multimédias.
Dans votre cas, vous auriez du premier extrait de l'emplacement des fichiers Pdf en araignée, chercher dans le pipeline et avoir un autre pipeline pour enregistrer des éléments.