ஸ்க்ராபி டுடோரியல்: ஸ்க்ராபியைப் பயன்படுத்தி வலை-கிராலரை உருவாக்குவது எப்படி?



இந்த ஸ்க்ராபி டுடோரியல் கட்டுரையில், பல்வேறு தரவு பிரித்தெடுத்தல் நுட்பங்கள் மற்றும் தரவுத்தளத்தில் தரவை சேமிப்பதற்கான வழிகளைக் கொண்ட வலை-கிராலரை உருவாக்க நீங்கள் கற்றுக்கொள்வீர்கள்.

வலை ஸ்கிராப்பிங் என்பது வலைப்பக்கங்களிலிருந்து தரவைச் சேகரிப்பதற்கான ஒரு சிறந்த வழியாகும், இது ஒரு சிறந்த கருவியாக மாறியுள்ளது . பல்வேறு நூலகங்கள் போன்ற வலை ஸ்கிராப்பிங்கிற்கு வழங்கப்படுகிறது , ஒரு தரவு விஞ்ஞானியின் பணி உகந்ததாகிறது. ஸ்க்ராபி என்பது தரவைப் பிரித்தெடுப்பதற்கும் செயலாக்குவதற்கும் சேமிப்பதற்கும் பயன்படுத்தப்படும் ஒரு சக்திவாய்ந்த வலை கட்டமைப்பாகும். இந்த ஸ்க்ராபி டுடோரியலில் ஒரு வலை கிராலரை எவ்வாறு உருவாக்குவது என்பதை நாங்கள் கற்றுக்கொள்வோம், இந்த வலைப்பதிவில் விவாதிக்கப்பட்ட தலைப்புகள் பின்வருமாறு:

ஸ்க்ராபி என்றால் என்ன?

ஸ்க்ராபி என்பது பைத்தானில் எழுதப்பட்ட ஒரு இலவச மற்றும் திறந்த மூல வலை ஊர்ந்து செல்லும் கட்டமைப்பாகும். இது முதலில் நிகழ்த்த வடிவமைக்கப்பட்டுள்ளது , ஆனால் API களைப் பயன்படுத்தி தரவைப் பிரித்தெடுக்கவும் பயன்படுத்தலாம். இதை ஸ்கிராப்பிங்ஹப் லிமிடெட் பராமரிக்கிறது.





ஸ்க்ராப்பி என்பது வலைப்பக்கங்களைப் பதிவிறக்குவது, தரவைச் செயலாக்குவது மற்றும் சேமிப்பது போன்ற ஒரு முழுமையான தொகுப்பாகும் .

ஒரு வலைத்தளத்தை துடைக்க பல வழிகளில் வலை ஸ்கிராப்பிங் செய்யும்போது இது ஒரு பவர்ஹவுஸ் போன்றது. ஸ்க்ராப்பி பெரிய பணிகளை எளிதில் கையாளுகிறது, பல பக்கங்களை அல்லது URL களின் குழுவை ஒரு நிமிடத்திற்குள் குறைத்து விடுகிறது. இது ஒத்திசைவை அடைய ஒத்திசைவற்ற முறையில் செயல்படும் ஒரு ட்விஸ்டரைப் பயன்படுத்துகிறது.



இது பொதுவான மற்றும் ஆழமான கிராலர்களை உருவாக்க அனுமதிக்கும் சிலந்தி ஒப்பந்தங்களை வழங்குகிறது. தரவுகளில் மதிப்புகளை மாற்றுவது போன்ற பல்வேறு செயல்பாடுகளைச் செய்யக்கூடிய சிலந்தியில் செயல்பாடுகளை உருவாக்க உருப்படி குழாய் இணைப்புகளையும் ஸ்க்ராபி வழங்குகிறது.

c ++ இல் சுருக்கம் என்றால் என்ன

scrapy Architecture-scrapy tutorial-edureka

வலை-கிராலர் என்றால் என்ன?

வலை-கிராலர் என்பது வலையில் ஆவணங்களைத் தானாகத் தேடும் ஒரு நிரலாகும். அவை முதன்மையாக தானியங்கு உலாவலுக்கான தொடர்ச்சியான செயலுக்காக திட்டமிடப்பட்டுள்ளன.

எப்படி இது செயல்படுகிறது?



ஒரு வலை-கிராலர் ஒரு நூலகருக்கு மிகவும் ஒத்திருக்கிறது. இது வலையில் உள்ள தகவல்களைத் தேடுகிறது, தகவலை வகைப்படுத்துகிறது, பின்னர் வலம் வந்த தகவல்களை மீட்டெடுப்பதற்கும் அதற்கேற்ப சேமிப்பதற்கும் தகவல்களை அட்டவணைப்படுத்தி பட்டியலிடுகிறது.

கிராலரால் செய்யப்படும் செயல்பாடுகள் முன்பே உருவாக்கப்படுகின்றன, பின்னர் கிராலர் அந்த செயல்பாடுகளை தானாகவே செய்கிறது, இது ஒரு குறியீட்டை உருவாக்கும். இந்த குறியீடுகளை வெளியீட்டு மென்பொருளால் அணுகலாம்.

வலை-கிராலர் பயன்படுத்தக்கூடிய பல்வேறு பயன்பாடுகளைப் பார்ப்போம்:

  • வலை-கிராலரைப் பயன்படுத்தி வெவ்வேறு தளங்களில் விலைகளை ஒப்பிட்டுப் பார்க்க விலை ஒப்பீட்டு இணையதளங்கள் குறிப்பிட்ட தயாரிப்பு விவரங்களைத் தேடுகின்றன.

  • தகவல்களை மீட்டெடுப்பதற்கான தரவு சுரங்கத் துறையில் ஒரு வலை-கிராலர் மிக முக்கிய பங்கு வகிக்கிறது.

  • பக்கக் காட்சிகள், உள்வரும் மற்றும் வெளிச்செல்லும் இணைப்புகளுக்கான தரவைக் கணக்கிட தரவு பகுப்பாய்வு கருவிகள் வலை-கிராலர்களைப் பயன்படுத்துகின்றன.

  • செய்தி இணையதளங்கள் போன்ற தரவுகளை சேகரிக்க கிராலர்கள் தகவல் மையங்களுக்கும் சேவை செய்கின்றன.

ஸ்க்ராபியை எவ்வாறு நிறுவுவது?

உங்கள் கணினியில் ஸ்க்ராபியை நிறுவ, அதை ஒரு பிரத்யேக virtualenv இல் நிறுவ பரிந்துரைக்கப்படுகிறது. நீங்கள் பயன்படுத்தினால், பைத்தானில் உள்ள வேறு எந்த தொகுப்புக்கும் நிறுவல் மிகவும் ஒத்ததாக இருக்கும் காண்டா சூழல், ஸ்க்ராபியை நிறுவ பின்வரும் கட்டளையைப் பயன்படுத்தவும்:

conda install -c conda-forge scrapy

ஸ்க்ராபியை நிறுவ குழாய் சூழலையும் பயன்படுத்தலாம்,

குழாய் நிறுவல் சிகிச்சை

உங்கள் இயக்க முறைமையைப் பொறுத்து சில தொகுப்பு சார்புகள் இருக்கலாம். ஸ்க்ராபி தூய மலைப்பாம்பில் எழுதப்பட்டுள்ளது மற்றும் இது போன்ற சில பைதான் தொகுப்புகளை சார்ந்தது:

  • lxml - இது ஒரு திறமையான எக்ஸ்எம்எல் மற்றும் HTML பாகுபடுத்தி ஆகும்.

  • பார்சல் - ஒரு HTML / XML பிரித்தெடுத்தல் நூலகம் lxml இல் எழுதப்பட்டுள்ளது

  • W3lib - இது URL கள் மற்றும் வலைப்பக்க குறியாக்கங்களைக் கையாள்வதற்கான பல்நோக்கு உதவியாளர்

  • முறுக்கப்பட்ட - ஒத்திசைவற்ற நெட்வொர்க்கிங் கட்டமைப்பு

  • குறியாக்கவியல் - இது பல்வேறு பிணைய-நிலை பாதுகாப்பு தேவைகளுக்கு உதவுகிறது

உங்கள் முதல் சிகிச்சை திட்டத்தைத் தொடங்குதல்

உங்கள் முதல் ஸ்க்ராபி திட்டத்தைத் தொடங்க, உங்கள் கோப்புகளைச் சேமிக்க விரும்பும் அடைவு அல்லது இருப்பிடத்திற்குச் சென்று பின்வரும் கட்டளையை இயக்கவும்

scrapy startproject projectname

இந்த கட்டளையை நீங்கள் இயக்கிய பிறகு, அந்த இடத்தில் பின்வரும் கோப்பகங்கள் உருவாக்கப்படும்.

உங்கள் முதல் சிலந்தியை உருவாக்குதல்

சிலந்திகள் என்பது நாம் வரையறுக்கும் வகுப்புகள் மற்றும் வலையிலிருந்து தகவல்களைச் சேகரிக்க ஸ்கிராப்பி பயன்படுத்துகிறது. நீங்கள் ஸ்கிராபி துணைப்பிரிவு செய்ய வேண்டும். செய்ய ஆரம்ப கோரிக்கைகளை ஸ்பைடர் மற்றும் வரையறுக்க வேண்டும்.

உங்கள் சிலந்திக்கான குறியீட்டை ஒரு தனி பைதான் கோப்பில் எழுதி உங்கள் திட்டத்தில் உள்ள திட்டப்பெயர் / சிலந்திகள் கோப்பகத்தில் சேமிக்கவும்.

quotes_spider.py

இறக்குமதி ஸ்கிராபி வகுப்பு QuotesSpider (scrapy.Spider): name = 'quotes' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] url களில் url க்கு: விளைச்சல் சிகிச்சை. கோரிக்கை (url = url, callback = self.parse) def parse (self, response): page = response.url.split ('/') [- 2 ] filename = 'மேற்கோள்கள்-% s.html'% பக்கம் திறந்த (கோப்பு பெயர், 'wb') f: f.write (response.body) self.log ('சேமித்த கோப்பு% s'% கோப்பு பெயர்)

நீங்கள் பார்க்க முடியும் என, எங்கள் சிலந்திகளில் பல்வேறு செயல்பாடுகளை வரையறுத்துள்ளோம்,

  • பெயர்: இது சிலந்தியை அடையாளம் காட்டுகிறது, இது திட்டம் முழுவதும் தனித்துவமாக இருக்க வேண்டும்.

  • start_requests (): சிலந்தி வலம் வரத் தொடங்கும் கோரிக்கைகளை மீண்டும் கொடுக்க வேண்டும்.

  • பாகுபடுத்தி (): இது ஒவ்வொரு கோரிக்கையுடனும் பதிவிறக்கம் செய்யப்பட்ட பதிலைக் கையாள அழைக்கப்படும் ஒரு முறை.

தரவைப் பிரித்தெடுக்கிறது

இப்போது சிலந்தி எந்த தரவையும் பிரித்தெடுக்கவில்லை, அது முழு HTML கோப்பையும் சேமித்தது. ஒரு ஸ்க்ராப்பி சிலந்தி பொதுவாக பக்கத்திலிருந்து பிரித்தெடுக்கப்பட்ட தரவைக் கொண்ட பல அகராதிகளை உருவாக்குகிறது. தரவைப் பிரித்தெடுக்க கால்பேக்கில் பைத்தானில் விளைச்சல் திறவுச்சொல்லைப் பயன்படுத்துகிறோம்.

இறக்குமதி ஸ்கிராபி வகுப்பு QuotesSpider (scrapy.Spider): பெயர் = 'மேற்கோள்கள்' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] def parse (self, response): response.css ('div.quote') இல் மேற்கோளுக்கு: விளைச்சல் text 'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' குறிச்சொற்கள் ': quote.css (div.tags a.tag :: text'). getall ()}

இந்த சிலந்தியை நீங்கள் இயக்கும்போது, ​​அது பிரித்தெடுக்கப்பட்ட தரவை பதிவோடு வெளியிடும்.

தரவை சேமித்தல்

பிரித்தெடுக்கப்பட்ட தரவைச் சேமிப்பதற்கான எளிய வழி, ஊட்ட ஏற்றுமதியைப் பயன்படுத்துவதன் மூலம், உங்கள் தரவைச் சேமிக்க பின்வரும் கட்டளையைப் பயன்படுத்தவும்.

scrapy crawl quotes -o quotes.json

இந்த கட்டளை வரிசைப்படுத்தப்பட்ட அனைத்து ஸ்கிராப் செய்யப்பட்ட உருப்படிகளையும் கொண்ட ஒரு quotes.json கோப்பை உருவாக்கும் JSON .

இது இந்த கட்டுரையின் முடிவிற்கு நம்மைக் கொண்டுவருகிறது, அங்கு ஒரு வலைத்தளத்தை ஸ்க்ராப் செய்ய மற்றும் தரவை ஒரு JSON கோப்பில் பிரித்தெடுக்க பைத்தானில் ஸ்கிராப்பியைப் பயன்படுத்தி ஒரு வலை-கிராலரை எவ்வாறு உருவாக்கலாம் என்பதை நாங்கள் கற்றுக்கொண்டோம். இந்த டுடோரியலில் உங்களுடன் பகிரப்பட்ட எல்லாவற்றையும் நீங்கள் தெளிவாகக் கருதுகிறீர்கள் என்று நம்புகிறேன்.

“ஸ்க்ராபி டுடோரியல்” குறித்த இந்த கட்டுரையை நீங்கள் கண்டால், பாருங்கள் உலகம் முழுவதும் பரவியுள்ள 250,000 க்கும் மேற்பட்ட திருப்தியான கற்றவர்களின் வலைப்பின்னலுடன் நம்பகமான ஆன்லைன் கற்றல் நிறுவனம்.

உங்கள் பயணத்தின் ஒவ்வொரு அடியிலும் உங்களுக்கு உதவ நாங்கள் இங்கு வந்துள்ளோம், மேலும் மாணவர்கள் மற்றும் தொழில் வல்லுநர்களுக்காக வடிவமைக்கப்பட்ட ஒரு பாடத்திட்டத்தை கொண்டு வருகிறோம். . பைதான் புரோகிராமிங்கில் உங்களுக்கு ஒரு தொடக்கத்தைத் தருவதற்கும், பல்வேறு மற்றும் முக்கிய மற்றும் மேம்பட்ட பைதான் கருத்தாக்கங்களுக்கும் பயிற்சி அளிப்பதற்காக இந்த படிப்பு வடிவமைக்கப்பட்டுள்ளது. போன்ற

நீங்கள் ஏதேனும் கேள்விகளைக் கண்டால், “ஸ்க்ராபி டுடோரியல்” இன் கருத்துகள் பிரிவில் உங்கள் எல்லா கேள்விகளையும் கேட்க தயங்கவும், எங்கள் குழு பதிலளிப்பதில் மகிழ்ச்சி அடைகிறது.