इस खूबसूरत सूप पायथन ट्यूटोरियल के साथ एक वेबसाइट को परिमार्जन करें

इस खूबसूरत सूप पायथन ट्यूटोरियल के साथ एक वेबसाइट को परिमार्जन करें

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





पायथन के ओपन-सोर्स ब्यूटीफुल सूप लाइब्रेरी के साथ, आप प्रक्रिया पर अधिकतम नियंत्रण के साथ वेबपेज के किसी भी हिस्से या तत्व को स्क्रैप करके डेटा प्राप्त कर सकते हैं। इस लेख में, हम देखते हैं कि आप किसी वेबसाइट को परिमार्जन करने के लिए ब्यूटीफुल सूप का उपयोग कैसे कर सकते हैं।





सुंदर सूप कैसे स्थापित करें और इसके साथ आरंभ करें

आगे बढ़ने से पहले, इस ब्यूटीफुल सूप ट्यूटोरियल लेख में, हम Python 3 और . का उपयोग करेंगे सुंदरसूप4 , सुंदर सूप का नवीनतम संस्करण। सुनिश्चित करें कि आप एक पायथन आभासी वातावरण बनाएं अपने प्रोजेक्ट और उसके पैकेजों को अपनी स्थानीय मशीन से अलग करने के लिए।





मैक पर ब्लूटूथ कैसे चालू करें

आरंभ करने के लिए, आपको अपने आभासी वातावरण में सुंदर सूप पुस्तकालय स्थापित करना होगा। सुंदर सूप सभी ऑपरेटिंग सिस्टम के लिए एक PyPi पैकेज के रूप में उपलब्ध है, इसलिए आप इसे इसके साथ स्थापित कर सकते हैं पिप सुंदरसूप स्थापित करें4 टर्मिनल के माध्यम से आदेश।

हालाँकि, यदि आप डेबियन या लिनक्स पर हैं, तो उपरोक्त कमांड अभी भी काम करता है, लेकिन आप इसे पैकेज मैनेजर के साथ चलाकर स्थापित कर सकते हैं उपयुक्त-पायथन3-bs4 स्थापित करें .



सुंदर सूप सीधे यूआरएल को परिमार्जन नहीं करता है। यह केवल तैयार एचटीएमएल या एक्सएमएल फाइलों के साथ काम करता है। इसका मतलब है कि आप इसमें सीधे यूआरएल पास नहीं कर सकते हैं। उस समस्या को हल करने के लिए, आपको सुंदर सूप को खिलाने से पहले लक्ष्य वेबसाइट के URL को Python के अनुरोध पुस्तकालय के साथ प्राप्त करने की आवश्यकता है।

अपने स्क्रैपर के लिए उस पुस्तकालय को उपलब्ध कराने के लिए, चलाएँ पाइप स्थापित अनुरोध टर्मिनल के माध्यम से आदेश।





XML पार्सर लाइब्रेरी का उपयोग करने के लिए, रन करें पाइप स्थापित करें lxml इसे स्थापित करने के लिए।

उस वेबपेज का निरीक्षण करें जिसे आप स्क्रैप करना चाहते हैं

आप जिस वेबसाइट से परिचित नहीं हैं, उसे स्क्रैप करने से पहले, उसके तत्वों का निरीक्षण करना सबसे अच्छा अभ्यास है। आप अपने ब्राउज़र को डेवलपर मोड में स्विच करके ऐसा कर सकते हैं। यह बहुत आसान है Chrome DevTools का उपयोग करें अगर आप गूगल क्रोम का इस्तेमाल कर रहे हैं।





हालांकि, किसी वेबपेज के HTML टैग्स, एट्रिब्यूट्स, क्लासेस और आईडी के बारे में अधिक जानने के लिए उसका निरीक्षण करना आवश्यक है। ऐसा करना किसी वेबपेज के मूल तत्वों और उसके सामग्री प्रकारों को उजागर करता है।

यह आपको उन सर्वोत्तम रणनीतियों को विकसित करने में भी मदद करता है जिनका उपयोग आप किसी वेबसाइट से सटीक डेटा प्राप्त करने के लिए कर सकते हैं और आप इसे कैसे प्राप्त कर सकते हैं।

सुंदर सूप के साथ वेबसाइटों के डेटा को कैसे परिमार्जन करें

अब जब आपके पास सब कुछ तैयार और तैयार है, तो एक पसंदीदा कोड संपादक खोलें और एक नई पायथन फ़ाइल बनाएं, इसे एक चुना हुआ नाम दें। हालाँकि, आप यह भी कर सकते हैं जुपिटर नोटबुक जैसे वेब-आधारित आईडीई का उपयोग करें यदि आप कमांड लाइन के माध्यम से पायथन चलाने से परिचित नहीं हैं।

अगला, आवश्यक पुस्तकालय आयात करें:

from bs4 import BeautifulSoup
import requests

सबसे पहले, आइए देखें कि अनुरोध पुस्तकालय कैसे काम करता है:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com')
print(website)

जब आप ऊपर दिए गए कोड को चलाते हैं, तो यह 200 स्थिति देता है, जो दर्शाता है कि आपका अनुरोध सफल हुआ है। अन्यथा, आपको 400 स्थिति या कुछ अन्य त्रुटि स्थितियाँ मिलती हैं जो एक असफल GET अनुरोध का संकेत देती हैं।

कोष्ठक में वेबसाइट के URL को हमेशा अपने लक्षित URL से बदलना याद रखें।

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

HTML पार्सर के साथ इसे कैसे करें, यह देखने के लिए इस अगले कोड स्निपेट पर एक नज़र डालें:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup)

उपरोक्त कोड किसी वेबपृष्ठ का संपूर्ण DOM उसकी सामग्री के साथ लौटाता है।

आप का उपयोग करके DOM का अधिक संरेखित संस्करण भी प्राप्त कर सकते हैं सँवारना तरीका। आप इसका आउटपुट देखने के लिए इसे आजमा सकते हैं:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup.prettify())

आप वेबपेज के तत्व को लोड किए बिना उसकी शुद्ध सामग्री भी प्राप्त कर सकते हैं ।मूलपाठ तरीका:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup.text)

टैग नाम से वेबपेज की सामग्री को कैसे स्क्रैप करें

आप सुंदर सूप के साथ किसी विशेष टैग में सामग्री को परिमार्जन भी कर सकते हैं। ऐसा करने के लिए, आपको अपने सुंदर सूप स्क्रैपर अनुरोध में लक्ष्य टैग का नाम शामिल करना होगा।

उदाहरण के लिए, आइए देखें कि आप इसमें सामग्री कैसे प्राप्त कर सकते हैं एच 2 एक वेबपेज के टैग।

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
print(soup.h2)

उपरोक्त कोड स्निपेट में, सूप.एच2 पहला लौटाता है एच 2 वेबपेज का तत्व और बाकी को अनदेखा करता है। सभी को लोड करने के लिए एच 2 तत्वों, आप का उपयोग कर सकते हैं सब ढूँढ़ो अंतर्निहित फ़ंक्शन और के लिये पायथन का लूप:

वर्चुअल मशीन किसके लिए उपयोग की जाती हैं
from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
h2tags = soup.find_all('h2')
for soups in h2tags:
print(soups)

कोड का वह ब्लॉक सभी लौटाता है एच 2 तत्व और उनकी सामग्री। हालांकि, आप टैग को लोड किए बिना सामग्री का उपयोग करके प्राप्त कर सकते हैं ।डोरी तरीका:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
h2tags = soup.find_all('h2')
for soups in h2tags:
print(soups.string)

आप इस तरीके का इस्तेमाल किसी भी HTML टैग के लिए कर सकते हैं। आपको बस इतना करना है कि प्रतिस्थापित करें एच 2 जिसे आप पसंद करते हैं उसके साथ टैग करें।

हालांकि, आप टैग्स की सूची को पास करके और टैग्स को स्क्रैप भी कर सकते हैं सब ढूँढ़ो तरीका। उदाहरण के लिए, नीचे दिए गए कोड का ब्लॉक, की सामग्री को स्क्रैप करता है प्रति , एच 2 , तथा शीर्षक टैग:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
tags = soup.find_all(['a', 'h2', 'title'])
for soups in tags:
print(soups.string)

आईडी और क्लास के नाम का उपयोग करके वेबपेज को कैसे स्क्रैप करें

DevTools के साथ एक वेबसाइट का निरीक्षण करने के बाद, यह आपको प्रत्येक तत्व को उसके DOM में रखने वाले id और वर्ग विशेषताओं के बारे में अधिक जानकारी देता है। एक बार आपके पास वह जानकारी हो जाने के बाद, आप इस पद्धति का उपयोग करके उस वेबपेज को परिमार्जन कर सकते हैं। यह तब उपयोगी होता है जब लक्ष्य घटक की सामग्री डेटाबेस से बाहर निकल रही हो।

आप का उपयोग कर सकते हैं पाना आईडी और क्लास स्क्रेपर्स के लिए विधि। से भिन्न सब ढूँढ़ो विधि जो एक पुनरावृत्त वस्तु लौटाती है, पाना विधि एकल, गैर-पुनरावृत्त लक्ष्य पर काम करती है, जो कि है पहचान इस मामले में। तो, आपको इसका उपयोग करने की आवश्यकता नहीं है के लिये इसके साथ लूप।

आइए एक उदाहरण देखें कि आप आईडी का उपयोग करके नीचे दिए गए पृष्ठ की सामग्री को कैसे स्क्रैप कर सकते हैं:

from bs4 import BeautifulSoup
import requests
website = requests.get('http://somewebpages.com/')
soup = BeautifulSoup(website.content, 'html.parser')
id = soup.find(id = 'enter the target id here')
print(id.text)

एक वर्ग के नाम के लिए ऐसा करने के लिए, प्रतिस्थापित करें पहचान साथ कक्षा . हालांकि, लेखन कक्षा सीधे सिंटैक्स भ्रम में परिणाम होता है क्योंकि पायथन इसे एक कीवर्ड के रूप में देखता है। उस त्रुटि को दूर करने के लिए, आपको इस तरह कक्षा के सामने एक अंडरस्कोर लिखना होगा: कक्षा_ .

संक्षेप में, आईडी युक्त रेखा बन जाती है:

my_classes = soup.find(class_ = 'enter the target class name here')
print(my_classes.text)

हालाँकि, आप किसी विशेष टैग नाम को उसकी संगत आईडी या वर्ग के साथ कॉल करके किसी वेबपेज को स्क्रैप भी कर सकते हैं:

data = soup.find_all('div', class_ = 'enter the target class name here')
print(data)

सुंदर सूप के साथ पुन: प्रयोज्य खुरचनी कैसे बनाएं

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

मान लें कि आप किसी ई-कॉमर्स वेबसाइट से शर्ट की कीमत निकालना चाहते हैं। नीचे दिया गया उदाहरण स्क्रैपर वर्ग मूल्य और शर्ट टैग को उनके संबंधित आईडी या वर्गों के साथ निकालता है और फिर इसे 'मूल्य' और शर्ट_नाम के साथ कॉलम नामों के साथ पंडों के डेटा फ्रेम के रूप में लौटाता है।

सुनिश्चित करें कि आप पाइप स्थापित पांडा टर्मिनल के माध्यम से यदि आपने पहले से ऐसा नहीं किया है।

import pandas as pd
class scrapeit:
try:
def scrape(website=None, tag1=None, id1=None, tag2=None, id2=None):
if not (website and tag1 and id1 and tag2 and id2)==None:
try:
page = requests.get(website)
soup = BeautifulSoup(page.content, 'html.parser')
infotag1 = soup.find_all(tag1, id1)
infotag2 = soup.find_all(tag2, id2)
priced = [prices.text for prices in infotag1]
shirt = [shirts.text for shirts in infotag2]
data = {
'Price':priced,
'Shirt_name':shirt}
info = pd.DataFrame(data, columns=['Price', 'Shirt_name'])
print(info)
except:
print('Not successful')
else:
print('Oops! Please enter a website, two tags and thier corresponding ids')
except:
print('Not successful!')

आपके द्वारा अभी बनाया गया स्क्रैपर एक पुन: प्रयोज्य मॉड्यूल है और आप इसे किसी अन्य पायथन फ़ाइल में आयात और उपयोग कर सकते हैं। कॉल करने के लिए खरोंच इसकी कक्षा से कार्य, आप उपयोग करते हैं स्क्रैपइट.स्क्रैप ('वेबसाइट यूआरएल', 'price_tag', 'price_id', 'शर्ट_टैग', 'शर्ट_आईडी') . यदि आप URL और अन्य पैरामीटर प्रदान नहीं करते हैं, तो अन्यथा कथन आपको ऐसा करने के लिए प्रेरित करता है।

उस स्कैपर को किसी अन्य पायथन फ़ाइल में उपयोग करने के लिए, आप इसे इस तरह आयात कर सकते हैं:

from scraper_module import scrapeit
scrapeit.scrape('URL', 'price_tag', 'price_id', 'shirt_tag', 'shirt_id')

ध्यान दें: खुरचनी_मॉड्यूल स्क्रैपर वर्ग धारण करने वाली पायथन फ़ाइल का नाम है।

आप भी चेक कर सकते हैं सुंदर सूप प्रलेखन यदि आप गहराई से जानना चाहते हैं कि आप इसका सर्वोत्तम उपयोग कैसे कर सकते हैं।

सुंदर सूप एक मूल्यवान वेब स्क्रैपिंग उपकरण है

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

वीजीए केबल कैसा दिखता है

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

साझा करना साझा करना कलरव ईमेल सर्वश्रेष्ठ वेब स्क्रैपिंग उपकरण ऑनलाइन

विश्लेषणात्मक उद्देश्यों के लिए वेबसाइटों से डेटा एकत्र करने की आवश्यकता है? ये वेब स्क्रैपिंग टूल इसे आसान बनाते हैं।

आगे पढ़िए
संबंधित विषय
  • प्रोग्रामिंग
  • अजगर
लेखक के बारे में इडिसौ ओमिसोला(94 लेख प्रकाशित)

Idowu कुछ भी स्मार्ट तकनीक और उत्पादकता के बारे में भावुक है। अपने खाली समय में, वह कोडिंग के साथ खेलता है और जब वह ऊब जाता है तो शतरंज की बिसात पर चला जाता है, लेकिन उसे कभी-कभी दिनचर्या से अलग होना भी पसंद होता है। लोगों को आधुनिक तकनीक के बारे में बताने का उनका जुनून उन्हें और अधिक लिखने के लिए प्रेरित करता है।

Idowu Omisola . की और फ़िल्में या टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें