اس خوبصورت سوپ ازگر ٹیوٹوریل کے ساتھ ویب سائٹ کو کھرچیں۔

اس خوبصورت سوپ ازگر ٹیوٹوریل کے ساتھ ویب سائٹ کو کھرچیں۔

خوبصورت سوپ ایک اوپن سورس ازگر لائبریری ہے۔ یہ XML اور HTML فائلوں کے مواد کو ختم کرنے کے لیے نیویگیٹنگ پارسرز کا استعمال کرتا ہے۔ آپ کو کئی تجزیاتی مقاصد کے لیے ڈیٹا کی ضرورت ہے۔ تاہم ، اگر آپ ازگر اور ویب سکریپنگ کے لیے نئے ہیں تو ، ازگر کی خوبصورت سوپ لائبریری ویب سکریپنگ پروجیکٹ کے لیے کوشش کرنے کے قابل ہے۔





ازگر کی اوپن سورس خوبصورت سوپ لائبریری کے ساتھ ، آپ ویب پیج کے کسی بھی حصے یا عنصر کو سکریپ کرکے ڈیٹا حاصل کرسکتے ہیں جس پر زیادہ سے زیادہ کنٹرول ہوتا ہے۔ اس آرٹیکل میں ، ہم دیکھتے ہیں کہ آپ کسی ویب سائٹ کو کھرچنے کے لیے خوبصورت سوپ کیسے استعمال کر سکتے ہیں۔





خوبصورت سوپ کیسے انسٹال کریں اور اس کے ساتھ شروع کریں۔

اس سے پہلے کہ ہم آگے بڑھیں ، اس خوبصورت سوپ ٹیوٹوریل مضمون میں ، ہم ازگر 3 اور استعمال کریں گے۔ beautifulsoup4 ، خوبصورت سوپ کا تازہ ترین ورژن۔ اس بات کو یقینی بنائیں کہ آپ۔ ازگر کا مجازی ماحول بنائیں۔ اپنے پروجیکٹ اور اس کے پیکجوں کو اپنی مقامی مشین سے الگ کرنے کے لیے۔





تفریحی کھیل جنہیں انٹرنیٹ کی ضرورت نہیں ہے۔

شروع کرنے کے لیے ، آپ کو اپنے ورچوئل ماحول میں خوبصورت سوپ لائبریری انسٹال کرنی چاہیے۔ خوبصورت سوپ تمام آپریٹنگ سسٹمز کے لیے ایک PyPi پیکج کے طور پر دستیاب ہے ، لہذا آپ اسے پائپ انسٹال خوبصورت سو پی 4۔ ٹرمینل کے ذریعے کمانڈ.

تاہم ، اگر آپ ڈیبین یا لینکس پر ہیں تو ، مذکورہ کمانڈ اب بھی کام کرتی ہے ، لیکن آپ اسے چلا کر پیکیج مینیجر کے ساتھ انسٹال کرسکتے ہیں۔ apt-get install python3-bs4 .



خوبصورت سوپ یو آر ایل کو براہ راست نہیں کھرچتا۔ یہ صرف تیار شدہ HTML یا XML فائلوں کے ساتھ کام کرتا ہے۔ اس کا مطلب ہے کہ آپ براہ راست اس میں یو آر ایل نہیں پاسکتے۔ اس مسئلے کو حل کرنے کے لیے ، آپ کو خوبصورت سوپ کھلانے سے پہلے ازگر کی درخواست لائبریری کے ساتھ ہدف ویب سائٹ کا یو آر ایل حاصل کرنے کی ضرورت ہے۔

اپنے کھرچنے والے کے لیے اس لائبریری کو دستیاب کرنے کے لیے ، پائپ انسٹال کرنے کی درخواستیں۔ ٹرمینل کے ذریعے کمانڈ.





XML پارسر لائبریری استعمال کرنے کے لیے ، چلائیں۔ پائپ انسٹال lxml اسے انسٹال کرنے کے لیے.

جس ویب پیج کو آپ سکریپ کرنا چاہتے ہیں اس کا معائنہ کریں۔

کسی بھی ویب سائٹ کو سکریپ کرنے سے پہلے جس سے آپ واقف نہیں ہیں ، ایک بہترین عمل اس کے عناصر کا معائنہ کرنا ہے۔ آپ اپنے براؤزر کو ڈویلپر کے موڈ میں تبدیل کرکے ایسا کرسکتے ہیں۔ یہ کافی آسان ہے۔ Chrome DevTools استعمال کریں۔ اگر آپ گوگل کروم استعمال کر رہے ہیں۔





تاہم ، یہ ضروری ہے کہ کسی ویب پیج کو اس کے ایچ ٹی ایم ایل ٹیگز ، اوصاف ، کلاسز اور آئی ڈی کے بارے میں مزید جاننے کے لیے اس کا معائنہ کیا جائے۔ ایسا کرنے سے ویب پیج کے بنیادی عناصر اور اس کے مواد کی اقسام بے نقاب ہوتی ہیں۔

اس سے آپ کو بہترین حکمت عملی تیار کرنے میں بھی مدد ملتی ہے جو آپ کسی ویب سائٹ سے مطلوبہ ڈیٹا حاصل کرنے کے لیے استعمال کرسکتے ہیں اور آپ اسے کیسے حاصل کرسکتے ہیں۔

خوبصورت سوپ کے ساتھ ویب سائٹ کا ڈیٹا کیسے کھرچنا ہے۔

اب جب کہ آپ کے پاس سب کچھ ہے اور تیار ہے ، ایک پسندیدہ کوڈ ایڈیٹر کھولیں اور ایک نئی ازگر فائل بنائیں ، اسے ایک منتخب نام دیں۔ تاہم ، آپ بھی کر سکتے ہیں۔ ویب پر مبنی IDEs جیسے Jupyter Notebook کا استعمال کریں۔ اگر آپ کمانڈ لائن کے ذریعے ازگر چلانے سے واقف نہیں ہیں۔

اگلا ، ضروری لائبریریاں درآمد کریں:

from bs4 import BeautifulSoup
import requests

سب سے پہلے ، آئیے دیکھتے ہیں کہ درخواستوں کی لائبریری کیسے کام کرتی ہے:

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

جب آپ مندرجہ بالا کوڈ چلاتے ہیں تو ، یہ 200 کی حیثیت لوٹاتا ہے ، جو یہ ظاہر کرتا ہے کہ آپ کی درخواست کامیاب ہے۔ بصورت دیگر ، آپ کو 400 اسٹیٹس یا کچھ اور ایرر سٹیٹس ملتے ہیں جو GET کی ناکام درخواست کی نشاندہی کرتے ہیں۔

یاد رکھیں کہ ویب سائٹ کے یو آر ایل کو ہمیشہ قوسین میں اپنے ٹارگٹ یو آر ایل سے تبدیل کریں۔

ایک بار جب آپ کے ساتھ ویب سائٹ مل جائے۔ حاصل کریں درخواست کریں ، پھر آپ اسے خوبصورت سوپ میں منتقل کردیں ، جو اب آپ کے منتخب کردہ فارمیٹ پر منحصر ہے ، اس کے بلٹ ان XML یا HTML پارسر کا استعمال کرتے ہوئے مواد کو HTML یا XML فائلوں کے طور پر پڑھ سکتا ہے۔

ایچ ٹی ایم ایل پارسر کے ساتھ یہ کیسے کریں یہ دیکھنے کے لیے اس اگلے کوڈ کے ٹکڑوں پر ایک نظر ڈالیں۔

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)

ٹیگ کے نام سے ویب پیج کے مواد کو سکریپ کرنے کا طریقہ

آپ خوبصورت سوپ کے ساتھ ایک خاص ٹیگ میں مواد کو کھرچ سکتے ہیں۔ ایسا کرنے کے لیے ، آپ کو اپنی خوبصورت سوپ کھرچنے والی درخواست میں ٹارگٹ ٹیگ کا نام شامل کرنے کی ضرورت ہے۔

مثال کے طور پر ، آئیے دیکھتے ہیں کہ آپ مواد کو کیسے حاصل کرسکتے ہیں۔ h2 ویب پیج کے ٹیگز.

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

اوپر کوڈ کے ٹکڑوں میں ، سوپ. h2 پہلا لوٹاتا ہے۔ h2 ویب پیج کا عنصر اور باقی کو نظر انداز کرتا ہے۔ تمام کو لوڈ کرنے کے لیے۔ h2 عناصر ، آپ استعمال کرسکتے ہیں۔ find_all بلٹ ان فنکشن اور کے لیے ازگر کا لوپ:

ونڈوز 10 میں فولڈر چھپائیں
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)

کوڈ کا وہ بلاک سب لوٹاتا ہے۔ h2 عناصر اور ان کا مواد تاہم ، آپ ٹیگ کو لوڈ کیے بغیر مواد حاصل کر سکتے ہیں سٹرنگ طریقہ:

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 ٹیگ کے لیے استعمال کر سکتے ہیں۔ آپ سب کو کرنے کی ضرورت ہے h2 اپنی پسند کے ساتھ ٹیگ کریں۔

تاہم ، آپ ٹیگز کی فہرست کو پاس کر کے مزید ٹیگز کو کھرچ سکتے ہیں۔ find_all طریقہ مثال کے طور پر ، نیچے کوڈ کا بلاک مواد کو ختم کرتا ہے۔ کو ، h2 ، اور عنوان ٹیگز:

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)

آئی ڈی اور کلاس کا نام استعمال کرتے ہوئے ویب پیج کو کیسے سکریپ کریں۔

دیو ٹولز کے ساتھ ایک ویب سائٹ کا معائنہ کرنے کے بعد ، یہ آپ کو آئی ڈی اور کلاس کے اوصاف کے بارے میں مزید جاننے دیتا ہے جو ہر عنصر کو اس کے DOM میں رکھتے ہیں۔ ایک بار جب آپ کے پاس معلومات کا وہ ٹکڑا ہو جائے تو آپ اس طریقہ کار کو استعمال کرتے ہوئے اس ویب پیج کو کھرچ سکتے ہیں۔ یہ مفید ہے جب کسی ٹارگٹ جزو کا مواد ڈیٹا بیس سے باہر نکل رہا ہو۔

آپ استعمال کر سکتے ہیں مل آئی ڈی اور کلاس سکریپرز کے لیے طریقہ کے برعکس۔ find_all ایک طریقہ جو تکراری چیز کو لوٹاتا ہے ، مل طریقہ ایک واحد ، ناقابل تکرار ہدف پر کام کرتا ہے ، جو کہ ہے۔ آئی ڈی اس معاملے میں. لہذا ، آپ کو استعمال کرنے کی ضرورت نہیں ہے کے لیے اس کے ساتھ لوپ.

آئیے اس کی ایک مثال دیکھتے ہیں کہ آپ آئی ڈی کا استعمال کرتے ہوئے ذیل کے صفحے کے مواد کو کیسے کھرچ سکتے ہیں۔

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!')

آپ نے جو سکریپر بنایا ہے وہ دوبارہ استعمال کے قابل ماڈیول ہے اور آپ اسے درآمد کر کے کسی اور ازگر فائل میں استعمال کر سکتے ہیں۔ کو کال کرنا۔ کھرچنا اس کی کلاس سے فنکشن ، آپ استعمال کرتے ہیں۔ scrapeit.scrape ('ویب سائٹ یو آر ایل' ، 'price_tag' ، 'price_id' ، 'shirt_tag' ، 'shirt_id') . اگر آپ یو آر ایل اور دیگر پیرامیٹرز فراہم نہیں کرتے ہیں تو اور بیان آپ کو ایسا کرنے کا اشارہ کرتا ہے۔

اس سکیپر کو کسی اور ازگر فائل میں استعمال کرنے کے لیے ، آپ اسے اس طرح درآمد کر سکتے ہیں:

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

نوٹ: scraper_module کھرچنی کلاس رکھنے والی ازگر فائل کا نام ہے۔

آپ چیک بھی کر سکتے ہیں۔ خوبصورت سوپ دستاویزات۔ اگر آپ اس میں گہرائی میں غوطہ لگانا چاہتے ہیں کہ آپ اس کا بہترین استعمال کیسے کر سکتے ہیں۔

خوبصورت سوپ ایک قابل قدر ویب سکریپنگ ٹول ہے۔

خوبصورت سوپ ایک طاقتور ازگر اسکرین کھرچنے والا ہے جو آپ کو کنٹرول کرتا ہے کہ آپ کا ڈیٹا سکریپنگ کے دوران کیسے آتا ہے۔ یہ ایک قیمتی کاروباری ٹول ہے ، کیونکہ یہ آپ کو مدمقابل کے ویب ڈیٹا تک رسائی فراہم کرسکتا ہے جیسے قیمتوں کا تعین ، مارکیٹ کے رجحانات اور بہت کچھ۔

مائیکروسافٹ گیم پاس کو منسوخ کرنے کا طریقہ

اگرچہ ہم نے اس آرٹیکل میں ایک ٹیگ سکریپر بنایا ہے ، پھر بھی آپ اس طاقتور ازگر لائبریری کے ساتھ کھیل سکتے ہیں تاکہ زیادہ مفید سکریپنگ ٹولز بن سکیں۔

بانٹیں بانٹیں ٹویٹ ای میل۔ بہترین ویب سکریپنگ ٹولز آن لائن۔

تجزیاتی مقاصد کے لیے ویب سائٹس سے ڈیٹا اکٹھا کرنے کی ضرورت ہے؟ یہ ویب سکریپنگ ٹول اسے آسان بناتے ہیں۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پروگرامنگ۔
  • ازگر۔
مصنف کے بارے میں ادیسو اومیسولا۔(94 مضامین شائع ہوئے)

ادوو کسی بھی سمارٹ ٹیک اور پیداوری کے بارے میں پرجوش ہے۔ اپنے فارغ وقت میں ، وہ کوڈنگ کے ساتھ کھیلتا ہے اور جب وہ بور ہوتا ہے تو شطرنج بورڈ پر سوئچ کرتا ہے ، لیکن اسے تھوڑی دیر میں معمول سے الگ ہونا بھی پسند ہے۔ لوگوں کو جدید ٹیکنالوجی کے راستے دکھانے کا ان کا جذبہ انہیں مزید لکھنے کی ترغیب دیتا ہے۔

Idowu Omisola سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔