Le scrapy peut-il produire à la fois des demandes et des articles?
Quand j'écris parse()
je cède à la fois une demande et les éléments pour une seule page?
Je veux extraire certaines données dans Une page, puis de stocker les données dans la base de données et en extraire des liens à suivre (ce qui peut être fait par la règle en CrawlSpider).
J'appelle les pages de liens de pages en pages est B pages, donc je peux écrire un autre parse_item() pour extraire des données à partir de B pages, mais je veux extraire quelques liens en B pages, donc je ne peux utiliser la règle pour en extraire des liens? comment aborder avec le double de l'Url dans Scrapy?
source d'informationauteur young001 | 2012-12-30
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas à 100% je comprends votre question, mais le code ci-dessous demande à des sites à partir d'une url de départ à l'aide de la basespider, puis analyse l'url de départ pour href alors les boucles de chaque lien appelant parse_url. tout jumelés en parse_url est envoyé à votre point de pipeline.
Oui, vous pouvez le rendement à la fois les demandes et les éléments. De ce que j'ai vu:
de Steven Almeroth dans google groupes:
Vous êtes de droite, vous pouvez rendement des Demandes et de retourner une liste d'Éléments, mais ce n'est pas ce que vous tentez. Vous essayez de produire une liste d'Éléments, au lieu de revenir avec eux. Et puisque vous êtes déjà à l'aide de parse() comme une fonction de générateur vous ne pouvez pas avoir à la fois du rendement et de retour ensemble. Mais vous pouvez avoir beaucoup de rendements.
Essayez ceci: