آج کے سرمایہ کار اور تجزیہ کار گوگل فنانس کی معلومات کا استعمال کر رہے ہیں کیونکہ یہ موجودہ اور درست ہے۔ ایسا لگتا ہے کہ گوگل فنانس ہر طرح کے موجودہ مالی اعداد و شمار رکھنے میں سب سے زیادہ ترجیحی جگہ ہے ، خاص طور پر اسٹاک کے ساتھ ساتھ انڈیکس اور مارکیٹ کے رجحانات کے ساتھ کیونکہ اس سے کمپنیوں کی مالی پیمائش کے بارے میں مزید تفصیلات ملتی ہیں۔ ازگر ویب سکریپنگ کے لئے بہترین زبان ہے۔ اس پوسٹ سے آپ کو گوگل فنانس سے ڈیٹا اکٹھا کرنے کا طریقہ سیکھنے میں مدد ملے گی تاکہ آپ کے پاس مالی تجزیہ کے تمام ضروری ٹولز مل سکیں۔
شروع کرنے سے پہلے ، یقینی بنائیں کہ آپ نے اپنے سسٹم پر ازگر انسٹال کیا ہے۔ آپ کو لائبریریوں کی بھی ضرورت ہوگی: ویب صفحات کے HTML مواد کو تجزیہ کرنے کے لئے HTTP درخواستیں اور LXML بنانے کے لئے درخواستیں۔ مطلوبہ لائبریریوں کو انسٹال کرنے کے لئے ، کمانڈ لائن پر درج ذیل کمانڈز کا استعمال کریں:
pip install requests
pip install lxml
اگلا ، ہم گوگل فنانس سے ڈیٹا نکالنے کے مرحلہ وار عمل کو تلاش کریں گے:
گوگل فنانس سے ڈیٹا کو کھرچنے کے ل we ، ہمیں مخصوص HTML عناصر کی نشاندہی کرنے کی ضرورت ہے جس میں وہ معلومات موجود ہیں جن میں ہم دلچسپی رکھتے ہیں:
یہ ایکس پاتھ اظہار گوگل فنانس پیجز کے ایچ ٹی ایم ایل ڈھانچے سے متعلقہ ڈیٹا کو نیویگیٹ اور نکالنے کے لئے ہمارے رہنما کے طور پر کام کرے گا۔
عنوان:
قیمت:
تاریخ:
جب کسی کھرچنی کو ترتیب دیں تو ، موثر اور محفوظ ڈیٹا اکٹھا کرنے کو یقینی بنانے کے ل کئی اہم پہلوؤں پر توجہ مرکوز کرنا بہت ضروری ہے۔
گوگل فنانس ویب سائٹ سے ایچ ٹی ایم ایل مواد لانے کے ل we ، ہم درخواستوں کی لائبریری کو ملازمت دیں گے۔ یہ قدم ویب پیج کو لوڈ کرکے عمل کا آغاز کرتا ہے جہاں سے ہم ڈیٹا نکالنے کا ارادہ رکھتے ہیں۔
جب ویب سکریپنگ ، خاص طور پر صارف ایجنٹ ہیڈر۔ ایک حقیقی براؤزر کی درخواست کی نقالی کرنے کے لئے ہیڈر کا استعمال ضروری ہے جو سائٹ کو آپ کے خودکار اسکرپٹ کی شناخت اور روکنے سے روک سکے گا۔ وہ اس بات کو یقینی بناتے ہیں کہ سرور درخواست کے بارے میں متعلقہ معلومات دے کر صحیح جواب دیتا ہے۔ مناسب ہیڈر غیر حاضر ، درخواست سے انکار کیا جاسکتا ہے یا سرور مکمل طور پر مختلف مواد کو واپس کرسکتا ہے یا ایسے حصوں میں مواد فراہم کرسکتا ہے جو ویب سکریپنگ سرگرمی کو محدود کرسکتے ہیں۔ لہذا ، ہیڈرز ترتیب دینے سے ویب سائٹ تک رسائی برقرار رکھنے میں مناسب مدد ملتی ہے اور اس بات کو یقینی بناتا ہے کہ کھرچنی صحیح ڈیٹا کو بازیافت کرے۔
import requests
# براؤزر کے دورے کی نقل کرنے کے لئے ہیڈر کی وضاحت کریں اور سرور کے ذریعہ مسدود ہونے سے گریز کریں
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'cache-control': 'no-cache',
'dnt': '1', # درخواست کے ہیڈر کو ٹریک نہ کریں
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',
'sec-ch-ua-full-version-list': '"Not/A)Brand";v="8.0.0.0", "Chromium";v="126.0.6478.114", "Google Chrome";v="126.0.6478.114"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-model': '""',
'sec-ch-ua-platform': '"Linux"',
'sec-ch-ua-platform-version': '"6.5.0"',
'sec-ch-ua-wow64': '?0',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}
# یوروونکسٹ پیرس (ای پی اے) ایکسچینج پر بی این پی پریباس (ٹکر بی این پی) کے لئے گوگل فنانس پیج کے یو آر ایل کی وضاحت کریں
url = "https://www.google.com/finance/quote/BNP:EPA?hl=en"
# HTTP کو مخصوص ہیڈرز کے ساتھ URL سے درخواست کریں
response = requests.get(url, headers=headers)
جب گوگل فنانس یا کسی بھی ویب سائٹ کو پیمانے پر ختم کرتے ہو تو ، پراکسیوں کو استعمال کرنا بہت ضروری ہے۔ یہاں کیوں:
# پراکسی کی ترتیبات کی وضاحت کریں
proxies = {
'http': 'http://your_proxy_address:port',
'https': 'https://your_proxy_address:port',
}
# HTTP کو مخصوص ہیڈر اور پراکسیوں کے ساتھ URL سے درخواست کریں
response = requests.get(url, headers=headers, proxies=proxies)
ایک بار جب ہم نے HTML مواد حاصل کرلیا تو ہمیں LXML لائبریری کا استعمال کرتے ہوئے اس کی تجزیہ کرنے کی ضرورت ہے۔ اس سے ہمیں HTML ڈھانچے کے ذریعے تشریف لے جانے اور جس ڈیٹا کو ہماری ضرورت ہے اسے نکالنے کی اجازت ہوگی:
LXML.HTML سے حاصل کردہ فنکشن کو HTML مواد کو کسی عنصر آبجیکٹ میں پارس کرنے کے لئے درآمد کیا جاتا ہے۔ اس کا طریقہ کار پارس کرتا ہے۔
from lxml.html import fromstring
#LXML کے منجمد طریقہ کار کا استعمال کرتے ہوئے ردعمل کے HTML مواد کی تجزیہ کریں
parser = fromstring(response.text)
اب ، پارسڈ HTML درخت سے XPath کے اظہار کا استعمال کرتے ہوئے مخصوص ڈیٹا نکالیں:
اس عنوان سے تجزیہ کردہ HTML سے مالیاتی آلے کا عنوان بازیافت کرتا ہے۔ قیمت موجودہ اسٹاک کی قیمت کو بازیافت کرتی ہے۔ تاریخ تاریخ کو بازیافت کرتی ہے۔ فنانس_ڈیٹا ڈکشنری میں نکلا ہوا عنوان ، قیمت اور تاریخ ہوتی ہے۔ اس لغت کو ایک فہرست میں شامل کیا گیا ہے۔
# آؤٹ پٹ ڈیٹا کو اسٹور کرنے کی فہرست
finance_data_list = []
# مالیاتی آلے کا عنوان نکالنا
title = parser.xpath('//div[@class="zzDege"]/text()')[0]
# اسٹاک کی موجودہ قیمت کو نکالنا
price = parser.xpath('//div[@class="YMlKec fxKbKc"]/text()')[0]
# تاریخ نکالنا
date = parser.xpath('//div[@class="ygUjEc"]/text()')[0]
# نکالا ہوا ڈیٹا اسٹور کرنے کے لئے لغت بنانا
finance_data = {
'title': title,
'price': price,
'date': date
}
# فنانس_ڈیٹا_ لسٹ میں ڈیٹا کو شامل کرنا
finance_data_list.append(finance_data)
سکریپڈ ڈیٹا کو سنبھالنے کے ل you ، آپ اس پر مزید کارروائی کرنا چاہتے ہیں یا اسے JSON جیسے ساختی شکل میں رکھنا چاہتے ہیں:
آؤٹ پٹ_فائل متغیر JSON فائل کا نام بتاتا ہے جہاں ڈیٹا کو محفوظ کیا جائے گا (فنانس_ڈیٹا.جسن)۔ اوپن (آؤٹ پٹ_فائل ، 'ڈبلیو') فائل کو لکھنے کے موڈ میں کھولتا ہے ، اور json.dump (فنانس_ڈیٹا_ لسٹ ، ایف ، انڈینٹ = 4) پڑھنے کی اہلیت کے لئے 4 اسپیس انڈینٹیشن کے ساتھ فائل میں فنانس_ڈیٹا_ لسٹ لکھتا ہے۔
# فنانس_ڈیٹا_ لسٹ کو JSON فائل میں محفوظ کریں
output_file = 'finance_data.json'
with open(output_file, 'w') as f:
json.dump(finance_data_list, f, indent=4)
ویب سائٹوں سے ڈیٹا کو ختم کرتے ہوئے ، آپ کے سکریپنگ اسکرپٹ کی وشوسنییتا اور مضبوطی کو یقینی بنانے کے لئے درخواست کے استثناء کو سنبھالنا ضروری ہے۔ یہ درخواستیں مختلف وجوہات کی بناء پر ناکام ہوسکتی ہیں جیسے نیٹ ورک کے مسائل ، سرور کی غلطیاں یا ٹائم آؤٹ۔ ازگر میں درخواستوں کی لائبریری اس قسم کے استثناء کو مؤثر طریقے سے سنبھالنے کا ایک طریقہ فراہم کرتی ہے جیسا کہ ذیل میں دکھایا گیا ہے:
try:
# یو آر ایل کو گیٹ کی درخواست بھیجنا
response = requests.get(url)
# خراب ردعمل (4xx یا 5xx اسٹیٹس کوڈز) کے لئے ایک Httperror بلد کریں
response.raise_for_status()
except requests.exceptions.HTTPError as e:
# HTTP کی غلطیاں سنبھالیں (جیسے 404 ، 500 ، وغیرہ)
print(f"HTTP error occurred: {e}")
except requests.exceptions.RequestException as e:
# درخواست کے دوران پیش آنے والی کسی بھی دوسری مستثنیات کو سنبھالیں
print(f"An error occurred: {e}")
کوشش بلاک کوڈ کو لپیٹ دیتا ہے جو مستثنیات کو بڑھا سکتا ہے۔ درخواستیں۔ گیٹ (یو آر ایل) گیٹ کی درخواست بھیجتی ہے۔ رسپانس۔ رائس_فور_سٹاٹس () ردعمل کی حیثیت کوڈ کی جانچ پڑتال کرتا ہے اور ناکام کوڈوں کے لئے ایک HTTPERROR اٹھاتا ہے۔ سوائے درخواستوں کے سوا۔ سوائے درخواستوں کے علاوہ
اب ، ہمارے کھرچنے والے فنکشن کو تخلیق کرنے کے لئے ہر چیز کو مربوط کریں جو گوگل فنانس کے متعدد یو آر ایل سے ڈیٹا لاتا ہے ، تجزیہ کرتا ہے اور نکالتا ہے۔
import requests
from lxml.html import fromstring
import json
import urllib3
import ssl
ssl._create_default_https_context = ssl._create_stdlib_context
urllib3.disable_warnings()
# کھرچنے کے لئے یو آر ایل کی فہرست
urls = [
"https://www.google.com/finance/quote/BNP:EPA?hl=en",
"https://www.google.com/finance/quote/SPY:NYSEARCA?hl=en",
"https://www.google.com/finance/quote/SENSEX:INDEXBOM?hl=en"
]
# براؤزر کے دورے کی نقل کرنے کے لئے ہیڈر کی وضاحت کریں
headers = {
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'accept-language': 'en-IN,en;q=0.9',
'cache-control': 'no-cache',
'dnt': '1',
'pragma': 'no-cache',
'priority': 'u=0, i',
'sec-ch-ua': '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',
'sec-ch-ua-full-version-list': '"Not/A)Brand";v="8.0.0.0", "Chromium";v="126.0.6478.114", "Google Chrome";v="126.0.6478.114"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-model': '""',
'sec-ch-ua-platform': '"Linux"',
'sec-ch-ua-platform-version': '"6.5.0"',
'sec-ch-ua-wow64': '?0',
'sec-fetch-dest': 'document',
'sec-fetch-mode': 'navigate',
'sec-fetch-site': 'none',
'sec-fetch-user': '?1',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36',
}
# پراکسی اختتامی نقطہ کی وضاحت کریں
proxies = {
'http': 'http://your_proxy_address:port',
'https': 'https://your_proxy_address:port',
}
# سکریپڈ ڈیٹا اسٹور کرنے کی فہرست
finance_data_list = []
# ہر یو آر ایل اور کھرچنے والے ڈیٹا کے ذریعے تکرار کریں
for url in urls:
try:
# یو آر ایل کو گیٹ کی درخواست بھیجنا
response = requests.get(url, headers=headers, proxies=proxies, verify=False)
# خراب ردعمل (4xx یا 5xx اسٹیٹس کوڈز) کے لئے ایک Httperror بلد کریں
response.raise_for_status()
# LXML کے منجمد طریقہ کار کا استعمال کرتے ہوئے ردعمل کے HTML مواد کی تجزیہ کریں
parser = fromstring(response.text)
# عنوان ، قیمت اور تاریخ نکالنا
title = parser.xpath('//div[@class="zzDege"]/text()')[0]
price = parser.xpath('//div[@class="YMlKec fxKbKc"]/text()')[0]
date = parser.xpath('//div[@class="ygUjEc"]/text()')[0]
# ذخیرہ شدہ ڈیٹا کو لغت میں اسٹور کریں
finance_data = {
'title': title,
'price': price,
'date': date
}
# لغت کو فہرست میں شامل کریں
finance_data_list.append(finance_data)
except requests.exceptions.HTTPError as e:
# HTTP کی غلطیاں سنبھالیں (جیسے 404 ، 500 ، وغیرہ)
print(f"HTTP error occurred for URL {url}: {e}")
except requests.exceptions.RequestException as e:
# درخواست کے دوران پیش آنے والی کسی بھی دوسری مستثنیات کو سنبھالیں
print(f"An error occurred for URL {url}: {e}")
# فنانس_ڈیٹا_ لسٹ کو JSON فائل میں محفوظ کریں
output_file = 'finance_data.json'
with open(output_file, 'w') as f:
json.dump(finance_data_list, f, indent=4)
print(f"Scraped data saved to {output_file}")
آؤٹ پٹ:
یہ گائیڈ گوگل فنانس کے اعداد و شمار کو کھرچنے کے بارے میں ایک جامع ٹیوٹوریل پیش کرتا ہے ، اس کے ساتھ ساتھ `LXML` اور` درخواستوں جیسے طاقتور لائبریریوں کے ساتھ ساتھ۔ اس میں مالی اعداد و شمار کے سکریپنگ کے لئے نفیس ٹولز بنانے کی بنیاد رکھی گئی ہے ، جس کا استعمال گہرائی سے مارکیٹ تجزیہ کرنے ، مدمقابل کی سرگرمیوں کی نگرانی ، یا باخبر سرمایہ کاری کے فیصلوں کی حمایت کرنے کے لئے استعمال کیا جاسکتا ہے۔
تبصرے: 0