వెబ్‌సైట్ నుండి సమాచారాన్ని తీసివేయడానికి ప్రాథమిక వెబ్ క్రాలర్‌ను ఎలా నిర్మించాలి

వెబ్‌సైట్ నుండి సమాచారాన్ని తీసివేయడానికి ప్రాథమిక వెబ్ క్రాలర్‌ను ఎలా నిర్మించాలి

వెబ్‌సైట్‌లు లేదా వెబ్ క్రాలర్‌ల నుండి సమాచారాన్ని చదివే ప్రోగ్రామ్‌లు అన్ని రకాల ఉపయోగకరమైన అప్లికేషన్‌లను కలిగి ఉంటాయి. మీరు స్టాక్ సమాచారం, స్పోర్ట్స్ స్కోర్లు, ట్విట్టర్ ఖాతా నుండి టెక్స్ట్ లేదా షాపింగ్ వెబ్‌సైట్‌ల నుండి ధరలను తీసివేయవచ్చు.





ఈ వెబ్ క్రాల్ ప్రోగ్రామ్‌లను వ్రాయడం మీరు అనుకున్నదానికంటే సులభం. వెబ్‌సైట్ల నుండి సమాచారాన్ని సేకరించే స్క్రిప్ట్‌లను వ్రాయడానికి పైథాన్‌లో గొప్ప లైబ్రరీ ఉంది. స్క్రాపీని ఉపయోగించి వెబ్ క్రాలర్‌ను ఎలా సృష్టించాలో చూద్దాం.





స్క్రాపీని ఇన్‌స్టాల్ చేస్తోంది

స్క్రాపీ అనేది పైథాన్ లైబ్రరీ, ఇది వెబ్‌ను స్క్రాప్ చేయడానికి మరియు వెబ్ క్రాలర్‌లను రూపొందించడానికి సృష్టించబడింది. ఇది వేగంగా, సరళంగా ఉంటుంది మరియు ఎక్కువ ప్రయత్నం లేకుండా బహుళ వెబ్ పేజీల ద్వారా నావిగేట్ చేయవచ్చు.





పిప్ ఇన్‌స్టాల్స్ పైథాన్ (PIP) లైబ్రరీ ద్వారా స్క్రాపీ అందుబాటులో ఉంది, ఇక్కడ రిఫ్రెషర్ ఉంది విండోస్, మాక్ మరియు లైనక్స్‌లో పిఐపిని ఎలా ఇన్‌స్టాల్ చేయాలి .

పైథాన్ వర్చువల్ ఎన్విరాన్‌మెంట్‌ను ఉపయోగించడం మంచిది ఎందుకంటే ఇది మీ సిస్టమ్ ఫైల్‌లను ఒంటరిగా వదిలివేసే వర్చువల్ డైరెక్టరీలో స్క్రాపీని ఇన్‌స్టాల్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఉత్తమ ఫలితాలను పొందడానికి దీన్ని చేయాలని స్క్రాపీ డాక్యుమెంటేషన్ సిఫార్సు చేస్తోంది.



డైరెక్టరీని సృష్టించండి మరియు వర్చువల్ ఎన్విరాన్‌మెంట్‌ను ప్రారంభించండి.

విండోస్ 10 మరియు లైనక్స్‌ను డ్యూయల్ బూట్ చేయడం ఎలా
mkdir crawler
cd crawler
virtualenv venv
. venv/bin/activate

మీరు ఇప్పుడు PIP ఆదేశాన్ని ఉపయోగించి ఆ డైరెక్టరీలో స్క్రాపీని ఇన్‌స్టాల్ చేయవచ్చు.





pip install scrapy

స్క్రాపీ సరిగ్గా ఇన్‌స్టాల్ చేయబడిందని నిర్ధారించుకోవడానికి త్వరిత తనిఖీ

scrapy
# prints
Scrapy 1.4.0 - no active project
Usage:
scrapy [options] [args]
Available commands:
bench Run quick benchmark test
fetch Fetch a URL using the Scrapy downloader
genspider Generate new spider using pre-defined templates
runspider Run a self-contained spider (without creating a project)
...

వెబ్ క్రాలర్‌ను ఎలా నిర్మించాలి

ఇప్పుడు పర్యావరణం సిద్ధంగా ఉంది కాబట్టి మీరు వెబ్ క్రాలర్‌ను నిర్మించడం ప్రారంభించవచ్చు. బ్యాటరీలపై వికీపీడియా పేజీ నుండి కొంత సమాచారాన్ని స్క్రాప్ చేద్దాం: https://en.wikipedia.org/wiki/Battery_(electricity) .





క్రాలర్ వ్రాయడానికి మొదటి దశ పైథాన్ క్లాస్‌ని విస్తరించడం స్క్రాపీ. స్పైడర్ . ఇది మీకు స్క్రాపీలోని అన్ని విధులు మరియు ఫీచర్‌లకు యాక్సెస్ ఇస్తుంది. ఈ తరగతికి కాల్ చేద్దాం సాలీడు 1 .

స్పైడర్ క్లాస్‌కు కొన్ని సమాచారం అవసరం:

  • కు పేరు సాలీడు గుర్తించడం కోసం
  • కు start_urls నుండి క్రాల్ చేయడానికి URL ల జాబితాను కలిగి ఉన్న వేరియబుల్ (వికీపీడియా URL ఈ ట్యుటోరియల్‌లో ఉదాహరణగా ఉంటుంది)
  • కు పార్స్ () సమాచారాన్ని సేకరించేందుకు వెబ్‌పేజీని ప్రాసెస్ చేయడానికి ఉపయోగించే పద్ధతి
import scrapy
class spider1(scrapy.Spider):
name = 'Wikipedia'
start_urls = ['https://en.wikipedia.org/wiki/Battery_(electricity)']
def parse(self, response):
pass

అన్నీ సక్రమంగా నడుస్తున్నాయో లేదో తెలుసుకోవడానికి త్వరిత పరీక్ష.

scrapy runspider spider1.py
# prints
2017-11-23 09:09:21 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: scrapybot)
2017-11-23 09:09:21 [scrapy.utils.log] INFO: Overridden settings: {'SPIDER_LOADER_WARN_ONLY': True}
2017-11-23 09:09:21 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.memusage.MemoryUsage',
'scrapy.extensions.logstats.LogStats',
...

లాగింగ్‌ను ఆఫ్ చేస్తోంది

ఈ క్లాస్‌తో స్క్రాపీని అమలు చేయడం ప్రస్తుతం మీకు సహాయపడని లాగ్ సమాచారాన్ని ప్రింట్ చేస్తుంది. ఈ అదనపు లాగ్ సమాచారాన్ని తీసివేయడం ద్వారా దీన్ని సులభతరం చేద్దాం. A ఉపయోగించండి హెచ్చరిక ఫైల్ ప్రారంభానికి కోడ్‌ను జోడించడం ద్వారా స్టేట్‌మెంట్.

import logging
logging.getLogger('scrapy').setLevel(logging.WARNING)

ఇప్పుడు మీరు స్క్రిప్ట్‌ను మళ్లీ అమలు చేసినప్పుడు, లాగ్ సమాచారం ముద్రించబడదు.

Chrome ఇన్స్‌పెక్టర్‌ని ఉపయోగించడం

వెబ్ పేజీలోని ప్రతిదీ HTML మూలకాలలో నిల్వ చేయబడుతుంది. మూలకాలు డాక్యుమెంట్ ఆబ్జెక్ట్ మోడల్ (DOM) లో అమర్చబడి ఉంటాయి. మీ వెబ్ క్రాలర్ నుండి ఎక్కువ ప్రయోజనం పొందడానికి DOM ని అర్థం చేసుకోవడం చాలా ముఖ్యం. వెబ్ క్రాలర్ సమాచారాన్ని కనుగొనడానికి పేజీలోని అన్ని HTML మూలకాల ద్వారా శోధిస్తుంది, కాబట్టి అవి ఎలా అమర్చబడిందో తెలుసుకోవడం ముఖ్యం.

HTML మూలకాలను వేగంగా కనుగొనడంలో మీకు సహాయపడే సాధనాలు Google Chrome లో ఉన్నాయి. ఇన్‌స్పెక్టర్‌ని ఉపయోగించి వెబ్ పేజీలో మీరు చూసే ఏదైనా మూలకం కోసం మీరు HTML ని గుర్తించవచ్చు.

  • Chrome లో ఒక పేజీకి నావిగేట్ చేయండి
  • మీరు చూడాలనుకుంటున్న మూలకంపై మౌస్ ఉంచండి
  • కుడి క్లిక్ చేసి ఎంచుకోండి తనిఖీ చేయండి మెను నుండి

ఈ దశలు డెవలపర్ కన్సోల్‌ని దీనితో తెరుస్తాయి మూలకాలు టాబ్ ఎంచుకోబడింది. కన్సోల్ దిగువన, మీరు మూలకాల చెట్టును చూస్తారు. ఈ చెట్టు మీ స్క్రిప్ట్ కోసం సమాచారాన్ని ఎలా పొందుతుంది.

శీర్షికను సంగ్రహిస్తోంది

మాకు కొంత పని చేయడానికి స్క్రిప్ట్ తీసుకుందాం; వెబ్ పేజీ టైటిల్ టెక్స్ట్ పొందడానికి ఒక సాధారణ క్రాల్.

దానికి కొంత కోడ్ జోడించడం ద్వారా స్క్రిప్ట్‌ను ప్రారంభించండి పార్స్ () శీర్షికను సంగ్రహించే పద్ధతి.

...
def parse(self, response):
print response.css('h1#firstHeading::text').extract()
...

ది ప్రతిస్పందన ఆర్గ్యుమెంట్ అనే పద్ధతికి మద్దతు ఇస్తుంది CSS () మీరు అందించే లొకేషన్‌ను ఉపయోగించి పేజీలోని ఎలిమెంట్‌లను ఎంచుకుంటుంది.

ఈ ఉదాహరణలో, మూలకం h1. మొదటి హెడింగ్ . జోడించడం

::text

స్క్రిప్ట్‌కు మూలకం యొక్క టెక్స్ట్ కంటెంట్ మీకు అందిస్తుంది. చివరగా, ది సారం () పద్ధతి ఎంచుకున్న మూలకాన్ని అందిస్తుంది.

స్క్రాపీలో ఈ స్క్రిప్ట్‌ను అమలు చేయడం వల్ల టైటిల్ టెక్స్ట్ రూపంలో ముద్రించబడుతుంది.

[u'Battery (electricity)']

వివరణను కనుగొనడం

ఇప్పుడు మేము టైటిల్ టెక్స్ట్‌ని స్క్రాప్ చేశాము, స్క్రిప్ట్‌తో మరింత చేద్దాం. క్రాలర్ టైటిల్ తర్వాత మొదటి పేరాను కనుగొని ఈ సమాచారాన్ని సేకరించబోతున్నాడు.

Chrome డెవలపర్ కన్సోల్‌లోని మూలకం చెట్టు ఇక్కడ ఉంది:

విండోస్ స్టాప్ కోడ్ వీయ సరిదిద్దలేని లోపం
div#mw-content-text>div>p

కుడి బాణం (>) మూలకాల మధ్య తల్లిదండ్రుల-పిల్లల సంబంధాన్ని సూచిస్తుంది.

ఈ లొకేషన్ అన్నింటినీ అందిస్తుంది p సరిపోలిన అంశాలు, ఇందులో మొత్తం వివరణ ఉంటుంది. మొదటిదాన్ని పొందడానికి p మీరు ఈ కోడ్‌ని వ్రాయగల మూలకం:

response.css('div#mw-content-text>div>p')[0]

శీర్షిక వలె, మీరు CSS ఎక్స్ట్రాక్టర్‌ను జోడించండి

::text

మూలకం యొక్క టెక్స్ట్ కంటెంట్ పొందడానికి.

response.css('div#mw-content-text>div>p')[0].css('::text')

తుది వ్యక్తీకరణ ఉపయోగిస్తుంది సారం () జాబితాను తిరిగి ఇవ్వడానికి. మీరు పైథాన్‌ను ఉపయోగించవచ్చు చేరండి () క్రాల్ అంతా పూర్తయిన తర్వాత జాబితాలో చేరడానికి ఫంక్షన్.

def parse(self, response):
print ''.join(response.css('div#mw-content-text>div>p')[0].css('::text').extract())

ఫలితం టెక్స్ట్ యొక్క మొదటి పేరా!

An electric battery is a device consisting of one or more electrochemical cells with external connections provided to power electrical devices such as flashlights, smartphones, and electric cars.[1] When a battery is supplying electric power, its positive terminal is
...

JSON డేటాను సేకరిస్తోంది

స్క్రాపీ టెక్స్ట్ రూపంలో సమాచారాన్ని సేకరించవచ్చు, ఇది ఉపయోగకరంగా ఉంటుంది. జావాస్క్రిప్ట్ ఆబ్జెక్ట్ నొటేషన్ (JSON) డేటాను వీక్షించడానికి కూడా స్క్రాపీ మిమ్మల్ని అనుమతిస్తుంది. JSON సమాచారాన్ని నిర్వహించడానికి చక్కని మార్గం మరియు వెబ్ అభివృద్ధిలో విస్తృతంగా ఉపయోగించబడుతుంది. JSON పైథాన్‌తో చాలా చక్కగా పనిచేస్తుంది అలాగే.

మీరు JSON గా డేటాను సేకరించాల్సిన అవసరం వచ్చినప్పుడు, మీరు దీనిని ఉపయోగించవచ్చు దిగుబడి స్క్రాపీలో నిర్మించిన ప్రకటన.

దిగుబడి ప్రకటన ఉపయోగించి స్క్రిప్ట్ యొక్క కొత్త వెర్షన్ ఇక్కడ ఉంది. టెక్స్ట్ ఫార్మాట్‌లో మొదటి p ఎలిమెంట్ పొందడానికి బదులుగా, ఇది అన్ని p ఎలిమెంట్‌లను పట్టుకుని JSON ఫార్మాట్‌లో ఆర్గనైజ్ చేస్తుంది.

మీకు కొత్త కంప్యూటర్ వచ్చినప్పుడు ఏమి చేయాలి
...
def parse(self, response):
for e in response.css('div#mw-content-text>div>p'):
yield { 'para' : ''.join(e.css('::text').extract()).strip() }
...

మీరు ఇప్పుడు అవుట్‌పుట్ JSON ఫైల్‌ను పేర్కొనడం ద్వారా స్పైడర్‌ని అమలు చేయవచ్చు:

scrapy runspider spider3.py -o joe.json

స్క్రిప్ట్ ఇప్పుడు అన్ని పి ఎలిమెంట్‌లను ప్రింట్ చేస్తుంది.

[
{'para': 'An electric battery is a device consisting of one or more electrochemical cells with external connections provided to power electrical devices such as flashlights, smartphones, and electric cars.[1] When a battery is supplying electric power, its positive terminal is the cathode and its negative terminal is the anode.[2] The terminal marked negative is the source of electrons that when connected to an external circuit will flow and deliver energy to an external device. When a battery is connected to an external circuit, electrolytes are able to move as ions within, allowing the chemical reactions to be completed at the separate terminals and so deliver energy to the external circuit. It is the movement of those ions within the battery which allows current to flow out of the battery to perform work.[3] Historically the term 'battery' specifically referred to a device composed of multiple cells, however the usage has evolved additionally to include devices composed of a single cell.[4]'},
{'para': 'Primary (single-use or 'disposable') batteries are used once and discarded; the electrode materials are irreversibly changed during discharge. Common examples are the alkaline battery used for flashlights and a multitude of portable electronic devices. Secondary (rechargeable) batteries can be discharged and recharged multiple
...

బహుళ మూలకాలను స్క్రాప్ చేయడం

ఇప్పటివరకు వెబ్ క్రాలర్ పేజీ నుండి శీర్షిక మరియు ఒక రకమైన మూలకాన్ని స్క్రాప్ చేసింది. స్క్రాపీ ఒక స్క్రిప్ట్‌లో వివిధ రకాల మూలకాల నుండి సమాచారాన్ని సేకరించవచ్చు.

ఒక వారాంతంలో టాప్ IMDb బాక్స్ ఆఫీస్ హిట్‌లను సేకరిద్దాం. ఈ సమాచారం నుండి తీసుకోబడింది http://www.imdb.com/chart/boxoffice , ప్రతి మెట్రిక్ కోసం వరుసలతో కూడిన పట్టికలో.

ది పార్స్ () పద్ధతి వరుస నుండి ఒకటి కంటే ఎక్కువ ఫీల్డ్‌లను సేకరించగలదు. క్రోమ్ డెవలపర్ టూల్స్ ఉపయోగించి మీరు టేబుల్ లోపల ఉన్న మూలకాలను కనుగొనవచ్చు.

...
def parse(self, response):
for e in response.css('div#boxoffice>table>tbody>tr'):
yield {
'title': ''.join(e.css('td.titleColumn>a::text').extract()).strip(),
'weekend': ''.join(e.css('td.ratingColumn')[0].css('::text').extract()).strip(),
'gross': ''.join(e.css('td.ratingColumn')[1].css('span.secondaryInfo::text').extract()).strip(),
'weeks': ''.join(e.css('td.weeksColumn::text').extract()).strip(),
'image': e.css('td.posterColumn img::attr(src)').extract_first(),
}
...

ది చిత్రం సెలెక్టర్ దానిని పేర్కొన్నాడు img యొక్క వారసుడు td.poster కాలమ్ . సరైన లక్షణాన్ని సంగ్రహించడానికి, వ్యక్తీకరణను ఉపయోగించండి _ _+_ |.

స్పైడర్ రన్నింగ్ JSON ని అందిస్తుంది:

::attr(src)

మరిన్ని వెబ్ స్క్రాపర్లు మరియు బాట్లు

స్క్రాపీ అనేది ఒక వివరణాత్మక గ్రంథాలయం, ఇది మీరు అడిగే వెబ్ క్రాల్ గురించి చేయవచ్చు. HTML అంశాలలో సమాచారాన్ని కనుగొనడం విషయానికి వస్తే, పైథాన్ మద్దతుతో కలిపి, దాన్ని ఓడించడం కష్టం. మీరు వెబ్ క్రాలర్‌ను నిర్మిస్తున్నా లేదా వెబ్ స్క్రాపింగ్ ప్రాథమిక విషయాల గురించి నేర్చుకున్నా, మీరు ఎంత నేర్చుకోవడానికి సిద్ధంగా ఉన్నారనేది మాత్రమే పరిమితి.

మీరు క్రాలర్‌లు లేదా బాట్‌లను నిర్మించడానికి మరిన్ని మార్గాల కోసం చూస్తున్నట్లయితే మీరు ప్రయత్నించవచ్చు పైథాన్ ఉపయోగించి ట్విట్టర్ మరియు ఇన్‌స్టాగ్రామ్ బాట్‌లను రూపొందించండి . వెబ్ డెవలప్‌మెంట్‌లో పైథాన్ కొన్ని అద్భుతమైన విషయాలను నిర్మించగలదు, కాబట్టి ఈ భాషను అన్వేషించేటప్పుడు వెబ్ క్రాలర్‌లను దాటి వెళ్లడం విలువ.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ 15 Windows కమాండ్ ప్రాంప్ట్ (CMD) ఆదేశాలు మీరు తప్పక తెలుసుకోవాలి

కమాండ్ ప్రాంప్ట్ ఇప్పటికీ శక్తివంతమైన విండోస్ టూల్. ప్రతి విండోస్ యూజర్ తెలుసుకోవలసిన అత్యంత ఉపయోగకరమైన CMD ఆదేశాలు ఇక్కడ ఉన్నాయి.

తదుపరి చదవండి
సంబంధిత అంశాలు
  • ప్రోగ్రామింగ్
  • వెబ్‌మాస్టర్ సాధనాలు
  • ప్రోగ్రామింగ్
  • పైథాన్
  • కోడింగ్ ట్యుటోరియల్స్
  • వెబ్ క్రాలర్స్
రచయిత గురుంచి ఆంథోనీ గ్రాంట్(40 కథనాలు ప్రచురించబడ్డాయి)

ఆంథోనీ గ్రాంట్ ప్రోగ్రామింగ్ మరియు సాఫ్ట్‌వేర్‌ను కవర్ చేసే ఫ్రీలాన్స్ రచయిత. అతను ప్రోగ్రామింగ్, ఎక్సెల్, సాఫ్ట్‌వేర్ మరియు టెక్నాలజీలో కంప్యూటర్ సైన్స్ ప్రముఖుడు.

ఆంథోనీ గ్రాంట్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి