"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > सार्वजनिक वेब से डेटा निकालने के लिए ब्यूटीफुल सूप का उपयोग कैसे किया जाता है

सार्वजनिक वेब से डेटा निकालने के लिए ब्यूटीफुल सूप का उपयोग कैसे किया जाता है

2024-08-01 को प्रकाशित
ब्राउज़ करें:312

How Beautiful Soup is used to extract data out of the Public Web

ब्यूटीफुल सूप एक पायथन लाइब्रेरी है जिसका उपयोग वेब पेजों से डेटा को स्क्रैप करने के लिए किया जाता है। यह HTML और XML दस्तावेज़ों को पार्स करने के लिए एक पार्स ट्री बनाता है, जिससे वांछित जानकारी निकालना आसान हो जाता है।

ब्यूटीफुल सूप वेब स्क्रैपिंग के लिए कई प्रमुख कार्यक्षमताएं प्रदान करता है:

  1. पार्स ट्री को नेविगेट करना: आप पार्स ट्री को आसानी से नेविगेट कर सकते हैं और तत्वों, टैग और विशेषताओं की खोज कर सकते हैं।
  2. पार्स ट्री को संशोधित करना: यह आपको टैग और विशेषताओं को जोड़ने, हटाने और अपडेट करने सहित पार्स ट्री को संशोधित करने की अनुमति देता है।
  3. आउटपुट फ़ॉर्मेटिंग: आप पार्स ट्री को वापस एक स्ट्रिंग में बदल सकते हैं, जिससे संशोधित सामग्री को सहेजना आसान हो जाता है।

ब्यूटीफुल सूप का उपयोग करने के लिए, आपको लाइब्रेरी को lxml या html.parser जैसे पार्सर के साथ स्थापित करना होगा। आप उन्हें पिप
का उपयोग करके स्थापित कर सकते हैं

#Install Beautiful Soup using pip.
pip install beautifulsoup4 lxml

पेजिनेशन को संभालना

कई पृष्ठों पर सामग्री प्रदर्शित करने वाली वेबसाइटों से निपटते समय, सभी डेटा को स्क्रैप करने के लिए पेजिनेशन को संभालना आवश्यक है।

  1. पेगिनेशन संरचना की पहचान करें: पेजिनेशन कैसे संरचित है (उदाहरण के लिए, अगला पृष्ठ बटन या क्रमांकित लिंक) यह समझने के लिए वेबसाइट का निरीक्षण करें।
  2. पेजों पर पुनरावृति: प्रत्येक पृष्ठ पर पुनरावृति करने और डेटा को स्क्रैप करने के लिए एक लूप का उपयोग करें।
  3. यूआरएल या पैरामीटर अपडेट करें: अगले पेज की सामग्री लाने के लिए यूआरएल या पैरामीटर संशोधित करें।
import requests
from bs4 import BeautifulSoup

base_url = 'https://example-blog.com/page/'
page_number = 1
all_titles = []

while True:
    # Construct the URL for the current page
    url = f'{base_url}{page_number}'
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')

    # Find all article titles on the current page
    titles = soup.find_all('h2', class_='article-title')
    if not titles:
        break  # Exit the loop if no titles are found (end of pagination)

    # Extract and store the titles
    for title in titles:
        all_titles.append(title.get_text())

    # Move to the next page
    page_number  = 1

# Print all collected titles
for title in all_titles:
    print(title)

नेस्टेड डेटा निकालना

कभी-कभी, आपको जो डेटा निकालने की आवश्यकता होती है वह टैग की कई परतों में निहित होता है। नेस्टेड डेटा निष्कर्षण को संभालने का तरीका यहां बताया गया है।

  1. पेरेंट टैग पर नेविगेट करें: नेस्टेड डेटा वाले पेरेंट टैग ढूंढें।
  2. नेस्टेड टैग निकालें: प्रत्येक पैरेंट टैग के भीतर, नेस्टेड टैग ढूंढें और निकालें।
  3. नेस्टेड टैग के माध्यम से पुनरावृत्त करें: आवश्यक जानकारी निकालने के लिए नेस्टेड टैग के माध्यम से पुनरावृत्त करें।
import requests
from bs4 import BeautifulSoup

url = 'https://example-blog.com/post/123'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Find the comments section
comments_section = soup.find('div', class_='comments')

# Extract individual comments
comments = comments_section.find_all('div', class_='comment')

for comment in comments:
    # Extract author and content from each comment
    author = comment.find('span', class_='author').get_text()
    content = comment.find('p', class_='content').get_text()
    print(f'Author: {author}\nContent: {content}\n')

AJAX अनुरोधों को संभालना

कई आधुनिक वेबसाइटें डेटा को गतिशील रूप से लोड करने के लिए AJAX का उपयोग करती हैं। AJAX को संभालने के लिए विभिन्न तकनीकों की आवश्यकता होती है, जैसे ब्राउज़र डेवलपर टूल का उपयोग करके नेटवर्क अनुरोधों की निगरानी करना और उन अनुरोधों को अपने स्क्रैपर में दोहराना।

import requests
from bs4 import BeautifulSoup

# URL to the API endpoint providing the AJAX data
ajax_url = 'https://example.com/api/data?page=1'
response = requests.get(ajax_url)
data = response.json()

# Extract and print data from the JSON response
for item in data['results']:
    print(item['field1'], item['field2'])

वेब स्क्रैपिंग के जोखिम

वेब स्क्रैपिंग के लिए कानूनी, तकनीकी और नैतिक जोखिमों पर सावधानीपूर्वक विचार करने की आवश्यकता होती है। उचित सुरक्षा उपायों को लागू करके, आप इन जोखिमों को कम कर सकते हैं और जिम्मेदारीपूर्वक और प्रभावी ढंग से वेब स्क्रैपिंग का संचालन कर सकते हैं।

  • सेवा की शर्तों का उल्लंघन: कई वेबसाइटें अपनी सेवा की शर्तों (टीओएस) में स्पष्ट रूप से स्क्रैपिंग पर रोक लगाती हैं। इन शर्तों का उल्लंघन करने पर कानूनी कार्रवाई हो सकती है।
  • बौद्धिक संपदा मुद्दे: बिना अनुमति के सामग्री को स्क्रैप करने से बौद्धिक संपदा अधिकारों का उल्लंघन हो सकता है, जिससे कानूनी विवाद हो सकते हैं।
  • आईपी ब्लॉकिंग: वेबसाइटें स्क्रैपिंग व्यवहार प्रदर्शित करने वाले आईपी पते का पता लगा सकती हैं और उन्हें ब्लॉक कर सकती हैं।
  • खाता प्रतिबंध: यदि उपयोगकर्ता प्रमाणीकरण की आवश्यकता वाली वेबसाइटों पर स्क्रैपिंग की जाती है, तो स्क्रैपिंग के लिए उपयोग किए जाने वाले खाते पर प्रतिबंध लगाया जा सकता है।

ब्यूटीफुल सूप एक शक्तिशाली लाइब्रेरी है जो HTML और XML दस्तावेज़ों को नेविगेट करने और खोजने के लिए उपयोग में आसान इंटरफ़ेस प्रदान करके वेब स्क्रैपिंग की प्रक्रिया को सरल बनाती है। यह विभिन्न पार्सिंग कार्यों को संभाल सकता है, जिससे यह वेब से डेटा निकालने के इच्छुक किसी भी व्यक्ति के लिए एक आवश्यक उपकरण बन जाता है।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/marcosconci/how-beautiful-soup-is-used-to-extract-data-out-of-the-public-web-51gg?1 यदि कोई उल्लंघन है , कृपया स्टडी_गोलंग @163.कॉमडिलीट से संपर्क करें
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3