Crawler Time
यह आपका पहला मौका होगा ऐसे spider के साथ काम करने का जो साइट्स के बीच crawl करेगा (पहले एक साइट से लिंक इकट्ठा करेगा, और फिर उन लिंक्स को follow करके नई साइट्स को parse करेगा)। यह spider DataCamp के शॉर्टened कोर्स डायरेक्टरी से शुरू होता है, फिर parse method में कोर्स के लिंक निकालता है; वहाँ से, वह उन लिंक्स को follow करके parse_descr method में हर कोर्स पेज से कोर्स descriptions निकालता है, और इन descriptions को सूची course_descrs में रख देता है। आपका काम है कोड को इस तरह पूरा करना कि spider मनचाहे तरीके से चले!
हमने inspect_spider नाम का एक फंक्शन बनाया है जो (अगर आपने सही किया) आपके द्वारा scrape किए गए कोर्स descriptions में से एक को प्रिंट करेगा!
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में Web Scraping
अभ्यास निर्देश
- नीचे दिए गए दो खाली स्थान भरिए (हर parsing method में एक-एक) ताकि spider पहली parsing method से दूसरी तक सही तरह से जा सके.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Import the scrapy library
import scrapy
# Create the Spider class
class DCdescr( scrapy.Spider ):
name = 'dcdescr'
# start_requests method
def start_requests( self ):
yield scrapy.Request( url = url_short, callback = self.parse )
# First parse method
def parse( self, response ):
links = response.css( 'div.course-block > a::attr(href)' ).extract()
# Follow each of the extracted links
for link in links:
yield ____
# Second parsing method
def parse_descr( ____ ):
# Extract course description
course_descr = response.css( 'p.course__description::text' ).extract_first()
# For now, just yield the course description
yield course_descr
# Inspect the spider
inspect_spider( DCdescr )