PHP में डेटा पार्सिंग और स्क्रैपिंग: शुरुआत से प्रोफेशनल तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: PHP पार्सिंग के लिए क्यों है बेहतरीन टूल

\n\n

जब भी वेबसाइट पार्सिंग की बात होती है, ज़्यादातर लोग Python के BeautifulSoup या Scrapy के बारे में सोचते हैं। लेकिन सच्चाई यह है कि PHP हर दूसरे सर्वर पर मौजूद है, और अगर आपका प्रोजेक्ट पहले से PHP पर चल रहा है, तो सिर्फ एक काम के लिए Python का पूरा स्टैक लाना बिल्कुल सही नहीं है। PHP डेटा इकट्ठा करने में बहुत अच्छा काम करता है, खासकर जब HTML या JSON को तेज़ी से प्रोसेस करना हो, API से डेटा लेना हो या कई पेजों से कंटेंट निकालना हो।

\n\n

pythonlib.ru पर हम आमतौर पर Python की बात करते हैं, लेकिन आज हम एक अपवाद बना रहे हैं। क्योंकि PHP सिर्फ 'साइट-विज़िट कार्ड' बनाने की भाषा नहीं है। यह वेब स्क्रैपिंग का एक शक्तिशाली टूल है, जो cURL, DOMDocument, XPath के साथ काम कर सकता है और ब्राउज़र के व्यवहार की नकल भी कर सकता है। इस लेख में हम वास्तविक उदाहरणों के साथ सीखेंगे कि PHP में वेबसाइट कैसे पार्स करें, ब्लॉकिंग से कैसे बचें और डायनामिक कंटेंट को कैसे हैंडल करें।

\n\n

अगर आप कभी प्रतिस्पर्धियों की कीमतें, खबरें या संपर्क जानकारी ऑटोमेटिकली इकट्ठा करना चाहते थे, तो आप सही जगह पर हैं। चलिए शुरू करते हैं!

\n\n

पार्सिंग और स्क्रैपिंग: क्या है अंतर?

\n\n

कोड लिखने से पहले, शब्दों को समझ लेते हैं। PHP में डेटा पार्सिंग का मतलब है HTML, XML या JSON से स्ट्रक्चर्ड जानकारी निकालना। जबकि PHP में डेटा स्क्रैपिंग एक व्यापक शब्द है, जिसमें पेज लोड करना, सुरक्षा को बायपास करना और डेटा निकालना शामिल है। सीधे शब्दों में: पार्सिंग 'पढ़ना' है, और स्क्रैपिंग 'खुदाई' है।

\n\n

PHP में स्क्रैपिंग के लिए हमें दो मुख्य टूल चाहिए:

\n
    \n
  • cURL — HTTP रिक्वेस्ट भेजने और सर्वर से रिस्पॉन्स लेने के लिए
  • \n
  • DOMDocument या SimpleXML — प्राप्त HTML/XML को पार्स करने के लिए
  • \n
\n\n

इसके अलावा लाइब्रेरी का भी उपयोग कर सकते हैं (इस पर बाद में बात करेंगे), लेकिन शुरुआत के लिए बिल्ट-इन फंक्शन काफी हैं।

\n\n

एनवायरनमेंट सेटअप और इंस्टॉलेशन

\n\n

काम करने के लिए आपको PHP 7.4 या उससे ऊपर का वर्शन चाहिए, जिसमें curl और dom एक्सटेंशन हों। इनकी उपलब्धता इस तरह चेक करें:

\n\n
php -m | grep -E "curl|dom"
\n\n

अगर आउटपुट खाली है, तो पैकेज मैनेजर से इंस्टॉल करें:

\n\n
sudo apt install php-curl php-xml
\n\n

सब तैयार है। अब पार्सिंग के लिए पहला स्क्रिप्ट बनाते हैं।

\n\n

उदाहरण 1: cURL और DOMDocument के साथ सरल पार्सिंग

\n\n

मान लीजिए हम एक ब्लॉग से लेखों के हेडिंग इकट्ठा करना चाहते हैं। एक सरल लेकिन काम करने वाला कोड लिखते हैं:

\n\n
<?php\n// पार्स करने का URL\n$url = 'https://example-blog.com';\n\n// cURL इनिशियलाइज़ेशन\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);\ncurl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36');\n\n$html = curl_exec($ch);\ncurl_close($ch);\n\n// DOMDocument बनाएं और HTML लोड करें\n$dom = new DOMDocument();\nlibxml_use_internal_errors(true); // HTML पार्सिंग एरर को इग्नोर करें\n$dom->loadHTML($html);\nlibxml_clear_errors();\n\n// XPath का उपयोग करके h2 हेडिंग खोजें\n$xpath = new DOMXPath($dom);\n$titles = $xpath->query('//h2');\n\nforeach ($titles as $title) {\n    echo $title->nodeValue . "\\n";\n}\n?>
\n\n

ध्यान दें: हमने User-Agent सेट किया है — यह ब्लॉकिंग से बचाव का सबसे बुनियादी तरीका है। इसके बिना साइटें अक्सर 403 एरर देती हैं। साथ ही CURLOPT_FOLLOWLOCATION का उपयोग रीडायरेक्ट को ऑटोमेटिक फॉलो करने के लिए किया है।

\n\n

उदाहरण 2: फॉर्म और POST रिक्वेस्ट के साथ काम करना

\n\n

अक्सर डेटा सर्च फॉर्म या लॉगिन के पीछे छिपा होता है। PHP पार्सिंग में फॉर्म सबमिट करने की नकल कर सकते हैं:

\n\n
<?php\n$url = 'https://example.com/search';\n$postData = http_build_query([\n    'query' => 'PHP scraping',\n    'submit' => 'Search'\n]);\n\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_POST, true);\ncurl_setopt($ch, CURLOPT_POSTFIELDS,                

ब्लॉग

पुस्तक अनुशंसाएँ