ازگر کا استعمال کرتے ہوئے گوگل میپس سے ڈیٹا کو کھرچنے سے مقامات ، کاروباری اداروں اور خدمات کے بارے میں قیمتی معلومات جمع کرنے کی اجازت ملتی ہے ، جو مارکیٹ کے تجزیے کے لئے فائدہ مند ہے ، نئے پنڈال کے زیادہ سے زیادہ مقامات کی نشاندہی کرنا ، موجودہ ڈائریکٹریوں کو برقرار رکھنا ، حریف تجزیہ ، اور مقامات کی مقبولیت کا اندازہ لگانا۔ یہ گائیڈ ایک جامع واک تھرو فراہم کرتا ہے کہ گوگل کے نقشوں سے معلومات کو کیسے نکالیں جس میں ازگر لائبریریوں کی درخواستوں اور LXML کو استعمال کیا جائے۔ اس میں درخواستیں کرنے ، جوابات سے نمٹنے ، ساختی اعداد و شمار کی تجزیہ کرنے ، اور اسے CSV فائل میں برآمد کرنے کے بارے میں تفصیلی ہدایات شامل ہیں۔
اس بات کو یقینی بنائیں کہ آپ کے پاس مندرجہ ذیل ازگر کی لائبریریاں نصب ہیں:
اگر ضرورت ہو تو PIP کا استعمال کرتے ہوئے ان لائبریریوں کو انسٹال کریں:
pip install requests
pip install lxml
ذیل میں ، ہم سکریپنگ کا ایک مرحلہ وار عمل پیش کریں گے ، جو مثالوں کے ساتھ مکمل ہیں۔
مندرجہ ذیل حصوں میں ، ہم گوگل میپس سے ڈیٹا کو کھرچنے کے لئے ایک تفصیلی مرحلہ وار عمل سے گزریں گے ، جو آپ کو ہر مرحلے میں رہنمائی کرنے کے لئے بصری مثالوں کے ساتھ مکمل کریں گے۔
URL کی وضاحت کریں جہاں سے آپ ڈیٹا کو کھرچنا چاہتے ہیں۔
url = "https link"
ایک حقیقی صارف کی سرگرمیوں کی نقالی کرنے کے لئے مناسب ہیڈرز کا قیام بہت ضروری ہے ، جس سے کھرچنی کے امکانات کو نمایاں طور پر کم کیا جاتا ہے جس کو بوٹ کے طور پر جھنڈا لگایا جاتا ہے۔ مزید برآں ، پراکسی سرورز کو مربوط کرنے سے کسی بھی بلاکس کو روکنے کے ذریعہ مسلسل سکریپنگ سرگرمیوں کو برقرار رکھنے میں مدد ملتی ہے جو کسی ایک IP ایڈریس سے وابستہ درخواست کی حد سے تجاوز کرنے سے پیدا ہوسکتا ہے۔
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="99", "Google Chrome";v="127", "Chromium";v="127"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',
'sec-ch-ua-full-version-list': '"Not)A;Brand";v="99.0.0.0", "Google Chrome";v="127.0.6533.72", "Chromium";v="127.0.6533.72"',
'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/127.0.0.0 Safari/537.36',
}
proxies = {
"http": "http://username:password@your_proxy_ip:port",
"https": "https://username:password@your_proxy_ip:port",
}
گوگل میپس یو آر ایل کو درخواست بھیجیں اور صفحہ کا مواد حاصل کریں:
import requests
response = requests.get(url, headers=headers, proxies=proxies)
if response.status_code == 200:
page_content = response.content
else:
print(f"Failed to retrieve the page. Status code: {response.status_code}")
HTML مواد کی تجزیہ کرنے کے لئے LXML کا استعمال کریں:
from lxml import html
parser = html.fromstring(page_content)
ڈیٹا کو صحیح طریقے سے نکالنے کے لئے ایچ ٹی ایم ایل دستاویز کی ساخت کو سمجھنا بہت ضروری ہے۔ آپ کو ڈیٹا پوائنٹس کے ل X ایکسپاتھ کے تاثرات کی نشاندہی کرنے کی ضرورت ہے جو آپ کھرچنا چاہتے ہیں۔ یہ ہے کہ آپ یہ کیسے کرسکتے ہیں:
ریستوراں کا نام:
//div[@jscontroller="AtSb"]/div/div/div/a/div/div/div/span[@class="OSrXXb"]/text()
پتہ:
//div[@jscontroller="AtSb"]/div/div/div/a/div/div/div[2]/text()
اختیارات:
= ', '.join(result.xpath('.//div[@jscontroller="AtSb"]/div/div/div/a/div/div/div[4]/div/span/span[1]//text()'))
جیو عرض البلد:
//div[@jscontroller="AtSb"]/div/@data-lat
جیو طول البلد:
//div[@jscontroller="AtSb"]/div/@data-lng
شناخت شدہ XPATHS کا استعمال کرتے ہوئے ڈیٹا نکالیں:
results = parser.xpath('//div[@jscontroller="AtSb"]')
data = []
for result in results:
restaurant_name = result.xpath('.//div/div/div/a/div/div/div/span[@class="OSrXXb"]/text()')[0]
address = result.xpath('.//div/div/div/a/div/div/div[2]/text()')[0]
options = ', '.join(result.xpath('.//div/div/div/a/div/div/div[4]/div/span/span[1]//text()'))
geo_latitude = result.xpath('.//div/@data-lat')[0]
geo_longitude = result.xpath('.//div/@data-lng')[0]
# Append to data list
data.append({
"restaurant_name": restaurant_name,
"address": address,
"options": options,
"geo_latitude": geo_latitude,
"geo_longitude": geo_longitude
})
نکالی گئی ڈیٹا کو CSV فائل میں محفوظ کریں:
import csv
with open("google_maps_data.csv", "w", newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["restaurant_name", "address", "options", "geo_latitude", "geo_longitude"])
writer.writeheader()
for entry in data:
writer.writerow(entry)
گوگل میپس ڈیٹا کو کھرچنے کا مکمل کوڈ یہ ہے:
import requests
from lxml import html
import csv
# Define the target URL and headers
url = "https://www.google.com/search?sca_esv=04f11db33f1535fb&sca_upv=1&tbs=lf:1,lf_ui:4&tbm=lcl&sxsrf=ADLYWIIFVlh6WQCV6I2gi1yj8ZyvZgLiRA:1722843868819&q=google+map+restaurants+near+me&rflfq=1&num=10&sa=X&ved=2ahUKEwjSs7fGrd2HAxWh1DgGHbLODasQjGp6BAgsEAE&biw=1920&bih=919&dpr=1"
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="99", "Google Chrome";v="127", "Chromium";v="127"',
'sec-ch-ua-arch': '"x86"',
'sec-ch-ua-bitness': '"64"',
'sec-ch-ua-full-version-list': '"Not)A;Brand";v="99.0.0.0", "Google Chrome";v="127.0.6533.72", "Chromium";v="127.0.6533.72"',
'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/127.0.0.0 Safari/537.36',
}
proxies = {
"http": "http://username:password@your_proxy_ip:port",
"https": "https://username:password@your_proxy_ip:port",
}
# Fetch the page content
response = requests.get(url, headers=headers, proxies=proxies)
if response.status_code == 200:
page_content = response.content
else:
print(f"Failed to retrieve the page. Status code: {response.status_code}")
exit()
# Parse the HTML content
parser = html.fromstring(page_content)
# Extract data using XPath
results = parser.xpath('//div[@jscontroller="AtSb"]')
data = []
for result in results:
restaurant_name = result.xpath('.//div/div/div/a/div/div/div/span[@class="OSrXXb"]/text()')[0]
address = result.xpath('.//div/div/div/a/div/div/div[2]/text()')[0]
options = ', '.join(result.xpath('.//div/div/div/a/div/div/div[4]/div/span/span[1]//text()'))
geo_latitude = result.xpath('.//div/@data-lat')[0]
geo_longitude = result.xpath('.//div/@data-lng')[0]
# Append to data list
data.append({
"restaurant_name": restaurant_name,
"address": address,
"options": options,
"geo_latitude": geo_latitude,
"geo_longitude": geo_longitude
})
# Save data to CSV
with open("google_maps_data.csv", "w", newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["restaurant_name", "address", "options", "geo_latitude", "geo_longitude"])
writer.writeheader()
for entry in data:
writer.writerow(entry)
print("Data has been successfully scraped and saved to google_maps_data.csv.")
موثر ویب سکریپنگ کے ل the ، صحیح درخواست کے ہیڈر اور پراکسیوں کو استعمال کرنا بہت ضروری ہے۔ زیادہ سے زیادہ پراکسی انتخاب ڈیٹا سینٹر یا آئی ایس پی پراکسی ہیں ، جو تیز رفتار اور کم تاخیر کی پیش کش کرتے ہیں۔ تاہم ، چونکہ یہ جامد پراکسی ہیں ، لہذا مؤثر طریقے سے روکنے سے بچنے کے لئے IP گردش پر عمل درآمد ضروری ہے۔ ایک متبادل اور زیادہ صارف دوست آپشن رہائشی پراکسیوں کا استعمال کرنا ہے۔ یہ متحرک پراکسی گردش کے عمل کو آسان بناتے ہیں اور اعتماد کا ایک اعلی عنصر رکھتے ہیں ، جس سے وہ بلاکس کو روکنے میں زیادہ موثر ہوجاتے ہیں۔
تبصرے: 0