Anonim

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

గత రెండు రోజులుగా నేను దీనిపై చాలా పరిశోధనలు చేశాను మరియు ఖచ్చితమైన క్యాచ్-అన్ని పరిష్కారం లేదని నేను మీకు చెప్పగలను. నేను వాటిని సాధించటం కొంచెం కష్టతరం చేయడానికి చాలా విషయాలు కనుగొన్నాను. క్లయింట్ కోసం నేను అమలు చేసినది ఇదే.

అజాక్సిఫైడ్ పేజినేటెడ్ డేటా

మీరు చాలా పేజినేటెడ్ డేటాను కలిగి ఉంటే, మరియు మీ URL చివరలో వేరే సంఖ్యను జోడించడం ద్వారా మీరు మీ డేటాను పాజినేట్ చేస్తున్నారు, అనగా http://www.domain.com/category/programming/2 - అప్పుడు మీరు తయారు చేస్తున్నారు క్రాలర్ ఉద్యోగం చాలా సులభం. మొదటి సమస్య ఏమిటంటే, ఇది సులభంగా గుర్తించదగిన నమూనాలో ఉంటుంది, కాబట్టి ఈ పేజీలలో స్క్రాపర్ వదులుగా అమర్చడం పై వలె సులభం. రెండవ సమస్య, వర్గంలోని తరువాతి పేజీల URL తో సంబంధం లేకుండా, వాటికి తాళాలు వేయడానికి తదుపరి మరియు మునుపటి లింక్ ఉంటుంది.

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

టెంప్లేట్ అవుట్‌పుట్‌ను రాండమైజ్ చేయండి

మీ డేటా కోసం ప్రత్యేకంగా స్క్రాపర్లు కొద్దిగా అనుకూలీకరించబడతాయి. వారు టైటిల్ కోసం ఒక నిర్దిష్ట డివి ఐడి లేదా క్లాస్, మీ వివరణ కోసం ప్రతి అడ్డు వరుసలోని 3 వ సెల్ మొదలైన వాటికి తాళాలు వేస్తారు. చాలా మంది స్క్రాపర్లు ఒకే టేబుల్ నుండి వస్తున్న చాలా డేటాతో పనిచేయడానికి సులభంగా గుర్తించదగిన నమూనా ఉంది, అదే టెంప్లేట్ ద్వారా ప్రదర్శించబడుతుంది. మీ డివి ఐడిలు మరియు క్లాస్ పేర్లను రాండమైజ్ చేయండి, ఖాళీ పట్టిక నిలువు వరుసలను 0 వెడల్పుతో యాదృచ్ఛికంగా చొప్పించండి. మీ డేటాను ఒక పేజీలోని పట్టికలో, శైలిలో మరియు మరొక మూసలో కలయికలో చూపించు. మీ డేటాను ably హాజనితంగా ప్రదర్శించడం ద్వారా, దాన్ని ably హాజనితంగా మరియు కచ్చితంగా స్క్రాప్ చేయవచ్చు.

HoneyPot

ఇది దాని సరళతలో చాలా చక్కగా ఉంటుంది. సైట్ స్క్రాపింగ్ నివారించడం గురించి నేను అనేక పేజీలలో ఈ పద్ధతిని చూశాను.

  • మీ సర్వర్‌లో gotcha.html అనే క్రొత్త ఫైల్‌ను సృష్టించండి.
  • మీ robots.txt ఫైల్‌లో, కింది వాటిని జోడించండి:
    వినియోగదారు-ఏజెంట్: *
    అనుమతించవద్దు: /gotcha.html

    ఇది అక్కడ ఉన్న అన్ని రోబోట్లు మరియు సాలెపురుగులు మీ సైట్ను ఇండెక్స్ చేస్తూ ගොట్చా.హెచ్.ఎమ్. ఏదైనా సాధారణ వెబ్ క్రాలర్ మీ robots.txt ఫైల్ యొక్క కోరికలను గౌరవిస్తుంది మరియు ఆ ఫైల్‌ను యాక్సెస్ చేయదు. అంటే, గూగుల్ మరియు బింగ్. మీరు నిజంగా ఈ దశను అమలు చేయాలనుకోవచ్చు మరియు తదుపరి దశకు వెళ్లేముందు 24 గంటలు వేచి ఉండండి. మీరు మీ robots.txt ఫైల్‌ను అప్‌డేట్ చేసినప్పుడు అప్పటికే క్రాల్ మిడ్-క్రాల్ అయినందున క్రాలర్ అనుకోకుండా మీ ద్వారా నిరోధించబడదని ఇది నిర్ధారిస్తుంది.
  • మీ వెబ్‌సైట్‌లో ఎక్కడో gotcha.html కు లింక్ ఉంచండి. ఎక్కడ ఉన్నా పర్వాలేదు. నేను ఫుటరులో సిఫారసు చేస్తాను, అయితే, ఈ లింక్ కనిపించదని నిర్ధారించుకోండి, CSS లో, ప్రదర్శన: ఏదీ లేదు;
  • ఇప్పుడు, ఈ పేజీని సందర్శించిన పెర్ప్ యొక్క IP / సాధారణ సమాచారాన్ని లాగిన్ చేసి, వాటిని బ్లాక్ చేయండి. ప్రత్యామ్నాయంగా, మీరు వాటిని తప్పు మరియు చెత్త డేటాను అందించడానికి స్క్రిప్ట్‌తో రావచ్చు. లేదా మీ నుండి వారికి మంచి వ్యక్తిగత సందేశం ఉండవచ్చు.

రెగ్యులర్ వెబ్ వీక్షకులు లింక్‌ను చూడలేరు, కాబట్టి ఇది అనుకోకుండా క్లిక్ చేయబడదు. పేరున్న క్రాలర్లు (ఉదాహరణకు గూగుల్), మీ robots.txt యొక్క కోరికలను గౌరవిస్తుంది మరియు ఫైల్‌ను సందర్శించదు. కాబట్టి, ఈ పేజీలో పొరపాట్లు చేయాల్సిన ఏకైక కంప్యూటర్లు హానికరమైన ఉద్దేశాలు ఉన్నవారు లేదా ఎవరైనా మీ సోర్స్ కోడ్‌ను చూడటం మరియు యాదృచ్చికంగా చుట్టూ క్లిక్ చేయడం (మరియు అది జరిగితే ఓహ్).

ఇది ఎల్లప్పుడూ పనిచేయకపోవడానికి కొన్ని కారణాలు ఉన్నాయి. మొదట, చాలా స్క్రాపర్లు సాధారణ వెబ్ క్రాలర్ల వలె పనిచేయవు మరియు మీ సైట్‌లోని ప్రతి పేజీ నుండి ప్రతి లింక్‌ను అనుసరించడం ద్వారా డేటాను కనుగొనవద్దు. స్క్రాపర్లు తరచూ కొన్ని పేజీలను పరిష్కరించడానికి మరియు కొన్ని నిర్మాణాలను మాత్రమే అనుసరించడానికి నిర్మించబడతాయి. ఉదాహరణకు, ఒక వర్గం పేజీలో స్క్రాపర్ ప్రారంభించబడవచ్చు, ఆపై స్లగ్‌లోని పదం / డేటాతో URL లను సందర్శించమని మాత్రమే చెప్పబడుతుంది. రెండవది, ఎవరైనా తమ స్క్రాపర్‌ను ఇతరుల మాదిరిగానే అదే నెట్‌వర్క్‌లో నడుపుతుంటే, మరియు షేర్డ్ ఐపి ఉపయోగించబడుతుంటే, మీరు మొత్తం నెట్‌వర్క్‌ను నిషేధించారు. ఇది సమస్యగా ఉండటానికి మీరు చాలా ప్రజాదరణ పొందిన వెబ్‌సైట్‌ను కలిగి ఉండాలి.

ఫ్లైలోని చిత్రాలకు డేటాను వ్రాయండి

డేటా యొక్క చిన్న ఫీల్డ్‌ను కనుగొనండి, వచనం యొక్క పొడవాటి తీగలను అవసరం లేదు, ఎందుకంటే ఇది పేజీని స్టైలింగ్ చేయడం కొంచెం కష్టతరం చేస్తుంది. చిత్రం లోపల ఈ డేటాను అవుట్పుట్ చేయండి, ప్రతి ప్రోగ్రామింగ్ భాషలో ఒక చిత్రానికి డైనమిక్‌గా వచనాన్ని వ్రాయడానికి పద్ధతులు ఉన్నాయని నేను చాలా నమ్మకంగా భావిస్తున్నాను (php, imagettftext లో). సంఖ్యా విలువలతో ఇది చాలా ప్రభావవంతంగా ఉంటుంది, ఎందుకంటే సంఖ్యలు చాలా తక్కువ SEO ప్రయోజనాన్ని అందిస్తాయి.

ప్రత్యామ్నాయ

ఈ ప్రాజెక్ట్ కోసం ఇది ఒక ఎంపిక కాదు. నిర్దిష్ట పేజీ వీక్షణల తర్వాత లాగిన్ అవసరం, లేదా లాగిన్ అవ్వకుండా పరిమితమైన డేటాను ప్రదర్శిస్తుంది. అనగా, మీకు 10 నిలువు వరుసలు ఉంటే, లాగిన్ కాని వినియోగదారులకు 5 మాత్రమే ప్రదర్శించండి.

ఈ తప్పు చేయవద్దు

బోట్ యొక్క వినియోగదారు-ఏజెంట్ ఆధారంగా ఒక విధమైన పరిష్కారాన్ని తీసుకురావడానికి ప్రయత్నించవద్దు. వారు ఏమి చేస్తున్నారో తెలిసిన స్క్రాపర్ ద్వారా ఈ సమాచారాన్ని సులభంగా మోసగించవచ్చు. ఉదాహరణకు గూగుల్ బోట్ సులభంగా అనుకరించవచ్చు. మీరు Google ని నిషేధించకూడదనుకుంటున్నారు.

సైట్ స్క్రాపింగ్ నిరోధిస్తుంది