آموزش استفاده از Scrapy (تکمیلی)

با سلام و درود، پیشاپیش سال نو مبارک باشه (سال ۱۳۹۹ – کرونا ویروس) – قبلا مطلبی در مورد آموزش Scrapy داخل بلاگ گذاشته بودم (اینجا می تونید مطالعش کنید)، در این پست قصد دارد موارد تکمیلی اون مطبی قدیمی رو منتشر کنم 🙂

بروز رسانی Scrapy:

تو مطلب اولیه، Scrapyورژن ۱.۷.۴ بود، منتهی در حال حاضر آخرین ورژن، ۲.۰.۰ می باشد، برای بروزرساتی اسکرپی کافیست از دستور زیر استفاده کنید :

sudo pip install --upgrade scrapy

استخراج داده ها :

خب تو مطلب اولیه گفتم که کافیست به هنگام اجرای دستور اجرا شدن Scrapy داخل ترمینال، در انتهای دستور -o و نام فایلی که میخواهید داده ها در آن ذخیره شوند را بزنید، برای مثال :

دستور اجرای خزنده با نام amazon_spider:

scrapy crawl amazon_spider

اجرای خزنده با نام amazon_spider و ذخیره نتایج در amazon_ex.json که در دایرکتوری اصلی پروژه اسکرپی ذخیره می شود:

scrapy crawl amazon_spider -o amazon_ex.json

حال می خوام، طریقه استخراج داده های خزنده دروت کد رو حدمتتون عرض کنم:

خب برای اینکار کافیست دو تا تنظیم را داخل Settings.py پروژه اسکرپی انجام دهید، دو عبارت FEED_FORMAT و FEED_URI را باید مقدار دهی کنید.

FEED_FORMAT :

چهار فرمت را Scrapy پشتیبانی می کند :

FEED_URI :

موقعیت (لوکیشن) ذخیره شدن فایل را مشخص می کند.

مثال اول : داخل فایل Setting عبارات فوق را به صورت زیر مقدار دهی می کنیم:

FEED_FORMAT="csv"
FEED_URI="amazon_1.csv"

حال با دستور اجرای خزنده، فایل amazon_1.csv نیز خودکار ساخته می شود:

scrapy crawl amazon_spider

نکته: اگر دو عبارت FEED_FORMAT و FEED_URI را در Settings.py مقدار دهی کنید، برای همه ی خزنده هایی که در آن پروژه Scrapy ساخته باشید اعمال می شود. اگر قصد دارید فقط روی یک خزنده اعمال شود باید داخل خود spider تان دو عبارت را مقدار دهی کنید:

دو تا آپشن هم برای نامگذاری فایل ها وجود داره، %(time)s و %(name)s که مشخصه چه چیزهایی را به نام فایل اضافه می کنند ( زمان ساخت فایل، اسم خزنده)