ازگر کے ساتھ گوگل میپس ڈیٹا کو کھرچنے کے لئے رہنمائی کریں

تبصرے: 0

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

اپنے ماحول کو ترتیب دیں

اس بات کو یقینی بنائیں کہ آپ کے پاس مندرجہ ذیل ازگر کی لائبریریاں نصب ہیں:

  • درخواستیں ؛
  • lxml ؛
  • CSV (معیاری لائبریری)۔

اگر ضرورت ہو تو PIP کا استعمال کرتے ہوئے ان لائبریریوں کو انسٹال کریں:


pip install requests
pip install lxml

ذیل میں ، ہم سکریپنگ کا ایک مرحلہ وار عمل پیش کریں گے ، جو مثالوں کے ساتھ مکمل ہیں۔

گوگل میپس سے ڈیٹا کو کھرچنے کے لئے مرحلہ وار گائیڈ

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

مرحلہ 1. ہدف URL کی وضاحت کریں

URL کی وضاحت کریں جہاں سے آپ ڈیٹا کو کھرچنا چاہتے ہیں۔


url = "https link"

مرحلہ 2. ہیڈر اور پراکسیوں کی وضاحت کریں

ایک حقیقی صارف کی سرگرمیوں کی نقالی کرنے کے لئے مناسب ہیڈرز کا قیام بہت ضروری ہے ، جس سے کھرچنی کے امکانات کو نمایاں طور پر کم کیا جاتا ہے جس کو بوٹ کے طور پر جھنڈا لگایا جاتا ہے۔ مزید برآں ، پراکسی سرورز کو مربوط کرنے سے کسی بھی بلاکس کو روکنے کے ذریعہ مسلسل سکریپنگ سرگرمیوں کو برقرار رکھنے میں مدد ملتی ہے جو کسی ایک 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",
}

مرحلہ 3. صفحہ کا مواد لائیں

گوگل میپس یو آر ایل کو درخواست بھیجیں اور صفحہ کا مواد حاصل کریں:


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}")

مرحلہ 4. HTML مواد کی تجزیہ کریں

HTML مواد کی تجزیہ کرنے کے لئے LXML کا استعمال کریں:


from lxml import html

parser = html.fromstring(page_content)

ڈیٹا ایکسپاتھ کی نشاندہی کرنا

ڈیٹا کو صحیح طریقے سے نکالنے کے لئے ایچ ٹی ایم ایل دستاویز کی ساخت کو سمجھنا بہت ضروری ہے۔ آپ کو ڈیٹا پوائنٹس کے ل X ایکسپاتھ کے تاثرات کی نشاندہی کرنے کی ضرورت ہے جو آپ کھرچنا چاہتے ہیں۔ یہ ہے کہ آپ یہ کیسے کرسکتے ہیں:

  1. ویب پیج کا معائنہ کریں: گوگل میپس پیج کو ویب براؤزر میں کھولیں اور HTML ڈھانچے کی جانچ پڑتال کے لئے براؤزر کے ڈویلپر ٹولز (دائیں کلک -ان اسپیکٹ) کا استعمال کریں۔
  2. متعلقہ عناصر تلاش کریں: HTML عناصر کی تلاش کریں جس میں وہ ڈیٹا موجود ہے جس میں آپ کھرچنا چاہتے ہیں (جیسے ، ریستوراں کے نام ، پتے)۔
  3. XPATHS لکھیں: HTML ڈھانچے کی بنیاد پر ، ڈیٹا نکالنے کے لئے XPath کے اظہار لکھیں۔ اس گائیڈ کے لئے ، ایکسپاتھ ہیں:

ریستوراں کا نام:


//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

مرحلہ 5. ڈیٹا نکالنا

شناخت شدہ 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
    })

مرحلہ 6۔ ڈیٹا کو CSV

میں محفوظ کریں

نکالی گئی ڈیٹا کو 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 تبصرے