بيثون Scrapy، وكيفية تحديد خط أنابيب للعنصر؟
-
20-08-2019 - |
سؤال
وأستخدمه 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
لا تنتمي إلى StackOverflow