వెబ్ స్క్రాపింగ్ ట్యుటోరియల్స్ గతంలో కవర్ చేయబడ్డాయి, కాబట్టి ఈ ట్యుటోరియల్ బ్రౌజర్ని ఉపయోగించి మాన్యువల్గా చేయడానికి బదులుగా కోడ్తో లాగిన్ చేయడం ద్వారా వెబ్సైట్లలో యాక్సెస్ పొందే అంశాన్ని మాత్రమే కవర్ చేస్తుంది.
ఈ ట్యుటోరియల్ని అర్థం చేసుకోవడానికి మరియు వెబ్సైట్లకు లాగిన్ అవ్వడానికి స్క్రిప్ట్లను వ్రాయడానికి, మీకు HTML గురించి కొంత అవగాహన అవసరం. అద్భుతమైన వెబ్సైట్లను రూపొందించడానికి బహుశా సరిపోదు, కానీ ప్రాథమిక వెబ్ పేజీ నిర్మాణాన్ని అర్థం చేసుకోవడానికి సరిపోతుంది.
ఇది అభ్యర్థనలు మరియు బ్యూటిఫుల్ సూప్ పైథాన్ లైబ్రరీలతో చేయబడుతుంది. ఆ పైథాన్ లైబ్రరీలు కాకుండా, కోడ్ రాసే ముందు ప్రాథమిక విశ్లేషణ కోసం Google Chrome లేదా Mozilla Firefox వంటి మంచి బ్రౌజర్ అవసరం.
అభ్యర్థనలు మరియు బ్యూటిఫుల్ సూప్ లైబ్రరీలను క్రింద చూసినట్లుగా టెర్మినల్ నుండి పిప్ కమాండ్తో ఇన్స్టాల్ చేయవచ్చు:
పిప్ ఇన్స్టాల్ అభ్యర్థనలు
పిప్ ఇన్స్టాల్ బ్యూటిఫుల్ సూప్ 4
ఇన్స్టాలేషన్ విజయాన్ని నిర్ధారించడానికి, టైప్ చేయడం ద్వారా చేసే పైథాన్ ఇంటరాక్టివ్ షెల్ను యాక్టివేట్ చేయండి కొండచిలువ టెర్మినల్ లోకి.
అప్పుడు రెండు లైబ్రరీలను దిగుమతి చేయండి:
దిగుమతిఅభ్యర్థనలు
నుండిbs4దిగుమతిఅందమైన సూప్
లోపాలు లేకపోతే దిగుమతి విజయవంతమవుతుంది.
ప్రక్రియ
స్క్రిప్ట్లతో వెబ్సైట్లోకి లాగిన్ అవ్వడానికి HTML పరిజ్ఞానం మరియు వెబ్ ఎలా పని చేస్తుందనే ఆలోచన అవసరం. వెబ్ ఎలా పనిచేస్తుందో క్లుప్తంగా చూద్దాం.
వెబ్సైట్లు క్లయింట్-సైడ్ మరియు సర్వర్ సైడ్ అనే రెండు ప్రధాన భాగాలతో తయారు చేయబడ్డాయి. క్లయింట్ సైడ్ అనేది యూజర్ ఇంటరాక్ట్ అయ్యే వెబ్సైట్లో భాగం, అయితే సర్వర్ సైడ్ అనేది వెబ్సైట్లో బిజినెస్ లాజిక్ మరియు డేటాబేస్ యాక్సెస్ చేయడం వంటి ఇతర సర్వర్ కార్యకలాపాలు అమలు చేయబడతాయి.
మీరు దాని లింక్ ద్వారా వెబ్సైట్ను తెరవడానికి ప్రయత్నించినప్పుడు, మీరు HTML ఫైల్లు మరియు CSS మరియు JavaScript వంటి ఇతర స్టాటిక్ ఫైల్లను పొందడానికి సర్వర్ వైపు అభ్యర్థనను చేస్తున్నారు. ఈ అభ్యర్థనను GET అభ్యర్థన అంటారు. అయితే మీరు ఒక ఫారమ్ను పూరించేటప్పుడు, ఒక మీడియా ఫైల్ లేదా డాక్యుమెంట్ను అప్లోడ్ చేస్తున్నప్పుడు, ఒక పోస్ట్ని క్రియేట్ చేసి, సబ్మిట్ బటన్ చెప్పండి క్లిక్ చేయండి, మీరు సమాచారాన్ని సర్వర్ వైపుకు పంపుతున్నారు. ఈ అభ్యర్థనను POST అభ్యర్థన అంటారు.
మా స్క్రిప్ట్ రాసేటప్పుడు ఆ రెండు కాన్సెప్ట్లను అర్థం చేసుకోవడం ముఖ్యం.
వెబ్సైట్ను తనిఖీ చేస్తోంది
ఈ వ్యాసం యొక్క భావనలను ఆచరించడానికి, మేము దీనిని ఉపయోగిస్తాము స్క్రాప్ చేయడానికి కోట్స్ వెబ్సైట్.
వెబ్సైట్లకు లాగిన్ అవ్వడానికి వినియోగదారు పేరు మరియు పాస్వర్డ్ వంటి సమాచారం అవసరం.
అయితే ఈ వెబ్సైట్ కేవలం భావన యొక్క రుజువుగా ఉపయోగించబడుతుంది కాబట్టి, ఏదైనా జరుగుతుంది. అందువల్ల మేము ఉపయోగిస్తాము అడ్మిన్ వినియోగదారు పేరుగా మరియు 12345 పాస్వర్డ్ వలె.
ముందుగా, పేజీ మూలాన్ని వీక్షించడం చాలా ముఖ్యం ఎందుకంటే ఇది వెబ్ పేజీ నిర్మాణం గురించి ఒక అవలోకనాన్ని ఇస్తుంది. వెబ్ పేజీపై కుడి క్లిక్ చేయడం ద్వారా మరియు వీక్షణ పేజీ మూలాన్ని క్లిక్ చేయడం ద్వారా ఇది చేయవచ్చు. తరువాత, మీరు లాగిన్ ఫారమ్ను తనిఖీ చేయండి. లాగిన్ బాక్స్లలో ఒకదానిపై కుడి క్లిక్ చేసి, క్లిక్ చేయడం ద్వారా మీరు దీన్ని చేయవచ్చు మూలకమును పరిశీలించు . మూలకాన్ని తనిఖీ చేసినప్పుడు, మీరు చూడాలి ఇన్పుట్ ట్యాగ్లు మరియు తరువాత ఒక పేరెంట్ రూపం దాని పైన ఎక్కడో ట్యాగ్ చేయండి. లాగిన్లు ప్రాథమికంగా రూపాలు అని ఇది చూపుతుంది పోస్ట్ వెబ్సైట్ యొక్క సర్వర్ వైపుకు ఎడ్.
ఇప్పుడు, గమనించండి పేరు వినియోగదారు పేరు మరియు పాస్వర్డ్ బాక్స్ల కోసం ఇన్పుట్ ట్యాగ్ల లక్షణం, కోడ్ వ్రాసేటప్పుడు అవి అవసరం. ఈ వెబ్సైట్ కోసం, ది పేరు వినియోగదారు పేరు మరియు పాస్వర్డ్ కోసం లక్షణం వినియోగదారు పేరు మరియు పాస్వర్డ్ వరుసగా.
తరువాత, లాగిన్ కోసం ముఖ్యమైన ఇతర పారామితులు ఉన్నాయో లేదో మనం తెలుసుకోవాలి. దీనిని త్వరగా వివరిద్దాం. వెబ్సైట్ల భద్రతను పెంచడానికి, క్రాస్ సైట్ ఫోర్జరీ దాడులను నిరోధించడానికి టోకెన్లు సాధారణంగా రూపొందించబడతాయి.
అందువల్ల, ఆ టోకెన్లు POST అభ్యర్థనకు జోడించబడకపోతే లాగిన్ విఫలమవుతుంది. కాబట్టి అటువంటి పారామితుల గురించి మనకు ఎలా తెలుసు?
మేము నెట్వర్క్ ట్యాబ్ను ఉపయోగించాలి. Google Chrome లేదా Mozilla Firefox లో ఈ ట్యాబ్ను పొందడానికి, డెవలపర్ సాధనాలను తెరిచి, నెట్వర్క్ ట్యాబ్పై క్లిక్ చేయండి.
మీరు నెట్వర్క్ ట్యాబ్లో ఉన్న తర్వాత, ప్రస్తుత పేజీని రిఫ్రెష్ చేయడానికి ప్రయత్నించండి మరియు మీరు అభ్యర్ధనలు వస్తున్నట్లు గమనించవచ్చు. మేము లాగిన్ చేయడానికి ప్రయత్నించినప్పుడు POST అభ్యర్థనలు పంపబడేలా చూడడానికి మీరు ప్రయత్నించాలి.
నెట్వర్క్ ట్యాబ్ తెరిచినప్పుడు మేము తరువాత ఏమి చేస్తామో ఇక్కడ ఉంది. లాగిన్ వివరాలను ఉంచండి మరియు లాగిన్ చేయడానికి ప్రయత్నించండి, మీరు చూసే మొదటి అభ్యర్థన POST అభ్యర్థనగా ఉండాలి.
POST అభ్యర్థనపై క్లిక్ చేయండి మరియు ఫారమ్ పారామితులను వీక్షించండి. వెబ్సైట్లో ఒకదాన్ని మీరు గమనించవచ్చు csrf_token విలువ కలిగిన పరామితి. ఆ విలువ ఒక డైనమిక్ విలువ, కాబట్టి మనం ఉపయోగించి అటువంటి విలువలను సంగ్రహించాలి పొందండి ఉపయోగించడానికి ముందు మొదట అభ్యర్థించండి పోస్ట్ అభ్యర్థన
మీరు పని చేస్తున్న ఇతర వెబ్సైట్ల కోసం, మీరు బహుశా చూడకపోవచ్చు csrf_token కానీ డైనమిక్గా ఉత్పత్తి చేయబడిన ఇతర టోకెన్లు ఉండవచ్చు. కాలక్రమేణా, లాగిన్ ప్రయత్నంలో నిజంగా ముఖ్యమైన పారామితులను తెలుసుకోవడంలో మీరు మెరుగ్గా ఉంటారు.
కోడ్
ముందుగా, లాగిన్ పేజీలోని పేజీ కంటెంట్కి ప్రాప్యత పొందడానికి మేము అభ్యర్థనలు మరియు బ్యూటిఫుల్ సూప్ని ఉపయోగించాలి.
నుండిఅభ్యర్థనలుదిగుమతిసెషన్నుండిbs4దిగుమతిఅందమైన సూప్గాbs
తోసెషన్() గాలు:
సైట్ =లు.పొందండి('http://quotes.toscrape.com/login')
ముద్రణ(సైట్.విషయము)
మేము లాగిన్ చేయడానికి ముందు మరియు మీరు లాగిన్ కీవర్డ్ కోసం శోధిస్తే ఇది లాగిన్ పేజీలోని కంటెంట్ను ప్రింట్ చేస్తుంది. కీవర్డ్ పేజీ కంటెంట్లో కనుగొనబడింది, మేము ఇంకా లాగిన్ అవ్వాల్సి ఉంది.
తరువాత, మేము దీని కోసం శోధిస్తాము csrf_token ముందుగా నెట్వర్క్ ట్యాబ్ని ఉపయోగిస్తున్నప్పుడు పారామితులలో ఒకటిగా కనుగొనబడిన కీవర్డ్. కీవర్డ్ ఒక దానితో సరిపోలికను చూపిస్తే ఇన్పుట్ ట్యాగ్, అప్పుడు మీరు బ్యూటిఫుల్ సూప్ ఉపయోగించి స్క్రిప్ట్ను రన్ చేసిన ప్రతిసారి విలువను సేకరించవచ్చు.
నుండిఅభ్యర్థనలుదిగుమతిసెషన్నుండిbs4దిగుమతిఅందమైన సూప్గాbs
తోసెషన్() గాలు:
సైట్ =లు.పొందండి('http://quotes.toscrape.com/login')
bs_ కంటెంట్=bs(సైట్.విషయము, 'html.parser')
టోకెన్ =bs_ కంటెంట్.కనుగొనండి('ఇన్పుట్', {'పేరు':'csrf_token'})['విలువ']
లాగిన్_ డేటా= {'వినియోగదారు పేరు':'అడ్మిన్','పాస్వర్డ్':'12345', 'csrf_token':టోకెన్}
లు.పోస్ట్('http://quotes.toscrape.com/login',లాగిన్_ డేటా)
హోమ్_పేజీ=లు.పొందండి('http://quotes.toscrape.com')
ముద్రణ(హోమ్_పేజీ.విషయము)
ఇది లాగిన్ అయిన తర్వాత పేజీ యొక్క కంటెంట్ను ప్రింట్ చేస్తుంది మరియు మీరు లాగ్అవుట్ కీవర్డ్ కోసం శోధిస్తే. కీవర్డ్ పేజీ కంటెంట్లో కనుగొనబడింది, మేము విజయవంతంగా లాగిన్ చేయగలిగాము.
కోడ్ యొక్క ప్రతి పంక్తిని చూద్దాం.
నుండిఅభ్యర్థనలుదిగుమతిసెషన్నుండిbs4దిగుమతిఅందమైన సూప్గాbs
అభ్యర్థనల లైబ్రరీ నుండి సెషన్ ఆబ్జెక్ట్ మరియు bs4 లైబ్రరీ నుండి బ్యూటిఫుల్ సూప్ ఆబ్జెక్ట్ను అలియాస్ ఉపయోగించి దిగుమతి చేయడానికి పై కోడ్ పంక్తులు ఉపయోగించబడతాయి. bs .
తోసెషన్() గాలు:మీరు అభ్యర్థన సందర్భాన్ని ఉంచాలనుకున్నప్పుడు అభ్యర్థనల సెషన్ ఉపయోగించబడుతుంది, కాబట్టి ఆ అభ్యర్థన సెషన్లోని కుకీలు మరియు మొత్తం సమాచారాన్ని నిల్వ చేయవచ్చు.
bs_ కంటెంట్=bs(సైట్.విషయము, 'html.parser')టోకెన్ =bs_ కంటెంట్.కనుగొనండి('ఇన్పుట్', {'పేరు':'csrf_token'})['విలువ']
ఇక్కడ ఈ కోడ్ బ్యూటిఫుల్ సూప్ లైబ్రరీని ఉపయోగించుకుంటుంది csrf_token వెబ్ పేజీ నుండి సేకరించవచ్చు మరియు తరువాత టోకెన్ వేరియబుల్కు కేటాయించవచ్చు. బ్యూటిఫుల్ సూప్ ఉపయోగించి నోడ్స్ నుండి డేటాను సేకరించడం గురించి మీరు తెలుసుకోవచ్చు.
లాగిన్_ డేటా= {'వినియోగదారు పేరు':'అడ్మిన్','పాస్వర్డ్':'12345', 'csrf_token':టోకెన్}లు.పోస్ట్('http://quotes.toscrape.com/login',లాగిన్_ డేటా)
ఇక్కడ కోడ్ లాగిన్ చేయడానికి ఉపయోగించాల్సిన పారామీటర్ల నిఘంటువును సృష్టిస్తుంది. నిఘంటువుల కీలు పేరు ఇన్పుట్ ట్యాగ్ల లక్షణాలు మరియు విలువలు విలువ ఇన్పుట్ ట్యాగ్ల లక్షణాలు.
ది పోస్ట్ పారామీటర్లతో పోస్ట్ అభ్యర్థనను పంపడానికి మరియు మమ్మల్ని లాగిన్ చేయడానికి పద్ధతి ఉపయోగించబడుతుంది.
హోమ్_పేజీ=లు.పొందండి('http://quotes.toscrape.com')ముద్రణ(హోమ్_పేజీ.విషయము)
లాగిన్ చేసిన తర్వాత, లాగిన్ విజయవంతమైందని చూపించడానికి పైన ఉన్న ఈ కోడ్ లైన్లు పేజీ నుండి సమాచారాన్ని సంగ్రహిస్తాయి.
ముగింపు
పైథాన్ని ఉపయోగించి వెబ్సైట్లలోకి లాగిన్ అయ్యే ప్రక్రియ చాలా సులభం, అయితే వెబ్సైట్ల సెటప్ ఒకేలా ఉండదు కాబట్టి కొన్ని సైట్లు ఇతరులకన్నా లాగిన్ చేయడం చాలా కష్టం. మీకు ఏవైనా లాగిన్ సవాళ్లను అధిగమించడానికి ఇంకా చాలా చేయవచ్చు.
వీటన్నిటిలో ముఖ్యమైన విషయం ఏమిటంటే HTML, రిక్వెస్ట్లు, బ్యూటిఫుల్ సూప్ మరియు మీ వెబ్ బ్రౌజర్ డెవలపర్ టూల్స్ యొక్క నెట్వర్క్ ట్యాబ్ నుండి పొందిన సమాచారాన్ని అర్థం చేసుకునే సామర్థ్యం.