سؤال

وأستخدمه scrapy الزحف مواقع مختلفة، ولكل موقع لدي البند (يتم استخراج المعلومات المختلفة)

حسنا، على سبيل المثال لدي خط أنابيب عام (معظم المعلومات هو نفسه) ولكن الآن أنا الزحف بعض استجابة البحث جوجل وخط الانابيب يجب أن تكون مختلفة.

وعلى سبيل المثال:

وGenericItem يستخدم GenericPipeline

ولكن GoogleItem يستخدم GoogleItemPipeline، ولكن عندما العنكبوت هو الزحف يحاول استخدام GenericPipeline بدلا من GoogleItemPipeline .... كيف يمكنني تحديد أي خط أنابيب يجب أن تستخدم جوجل العنكبوت؟

هل كانت مفيدة؟

المحلول

والآن سوى طريقة واحدة - التحقق من نوع عنصر في خطوط الأنابيب وعملية أو العودة "كما هي"

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
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top