How web scrape with chatgpt python cover

يعتقد كثيرون أن أدوات الذكاء الاصطناعي مثل ChatGPT أو Gemini تؤدي جزءاً كبيراً من عملنا، وتحل محل الجهد البشري الحقيقي، بل وتغير طريقة تفكيرنا واتخاذنا للقرارات. وغالباً ما يثير ذلك مخاوف بشأن مستقبل الوظائف والإبداع. لكن هل الذكاء الاصطناعي تهديد مبالغ فيه حقاً، أم أنه مجرد مساعد صغير يعيننا عند استخدامه باعتدال؟

خذ تجريف الويب مثالاً. تقليدياً، كان إنشاء أدوات التجريف يتطلب معرفة راسخة بالبرمجة واهتماماً بالتفاصيل ومهارات في تصحيح الأخطاء. مع ChatGPT، يستطيع حتى المبتدئون إنشاء نصوص تجريف جاهزة للاستخدام خلال ثوانٍ، بينما يوفر المحترفون ساعات من الوقت بترك مهام البرمجة المتكررة للذكاء الاصطناعي. وبدلاً من استبدال المطورين، يعمل الذكاء الاصطناعي كأداة إنتاجية قوية تقلل العمل الروتيني.

يمكن أن يفيد هذا النوع من التجريف الباحثين الذين يجمعون البيانات، والشركات التي تراقب المنافسين، والطلاب الذين يتعلمون Python. ومن خلال الجمع بين قدرة ChatGPT على كتابة الشيفرة وشرحها ومكتبات التجريف في Python، يمكن لأي شخص إنشاء أدوات تجريف سريعة وفعالة.

الأدوات الأساسية التي تحتاج إليها للبدء

قبل أن نبدأ تجريف صفحات Amazon باستخدام Python، لنتأكد من إعداد بيئتنا بصورة صحيحة. سنحتاج إلى:

  • Visual Studio Code، أو أي محرر شيفرة آخر 

نزّل VS Code من الموقع الرسمي واتبع تعليمات التثبيت الخاصة بنظام التشغيل لديك. ثم افتحه وثبّت إضافة Python بالنقر على أيقونة المربعات في الشريط الجانبي. افتح المجلد الذي تريد إنشاء مشروعك فيه باختيار ملف – فتح مجلد. أنشئ ملف Python جديداً للنص البرمجي، مثل: scraping_gpt_test.py

  • Python ومكتباته، Requests وBeautifulSoup

إذا لم يكن Python 3.x مثبتاً على جهازك، فيمكنك تنزيله من https://www.python.org/. تحقق من تثبيت Python بتشغيل أحد الأوامر التالية:


python --version
      
        

      


python3 --version
      
        

      

لا تزال بعض الأنظمة تربط python بـ Python 2، لذا استخدم python3pip3) للتأكد من أنك تشغّل Python 3. لاستخدام مكتبات Python، ثبّت أولاً pip باستخدام أحد الأوامر التالية:


python -m ensurepip
      
        

      


python3 -m ensurepip
      
        

      

بعد ذلك، افتح Terminal على جهازك وثبّت مكتبات Python باستخدام:


pip install requests beautifulsoup4 
      
        

      


pip3 install requests beautifulsoup4 
      
        

      

اضغط Enter، وسترى ما إذا كان قد تم تثبيتها.

  • حساب ChatGPT

أنشئ حساب OpenAI مجانياً أو مدفوعاً للوصول إلى ChatGPT، الذي ستستخدمه لكتابة نصوص التجريف وتصحيح أخطائها وتحسينها. 

  • بروكسيات DataImpulse

سندمج البروكسيات باستخدام بيانات اعتماد البروكسي. يمكنك الوصول إلى كل المعلومات اللازمة في لوحة تحكم DataImpulse، ضمن تفاصيل الخطة التي اخترتها.

يمكنك أيضاً نسخ التفاصيل الصحيحة ضمن قسم مثال URL الأساسي.

  • موقع الويب الذي ترغب في تجريفه

في هذا الدليل، نستخدم Wikipedia وقائمته الخاصة بـ قائمة الدول حسب عدد السكان. تذكّر استبداله بموقع الويب المستهدف في الشيفرة. 

👉 اتبع القواعد دائماً: راجع شروط خدمة موقع الويب وملف robots.txt قبل التجريف لتبقى آمناً وملتزماً بالأخلاقيات.

هل يستطيع ChatGPT إنشاء شيفرة تجريف بـ Python؟ لنجرب

1. افحص الصفحة المستهدفة واعثر على العناصر المراد تجريفها.

انقر بزر الماوس الأيمن على العنصر الذي تريده، مثل اسم دولة أو عدد سكان، واختر فحص في متصفحك. سيؤدي ذلك إلى فتح لوحة أدوات المطور . مرر المؤشر فوق HTML المميز للتأكد من أنك حددت العنصر الصحيح.

2. احفظ شيفرة HTML الخاصة بتلك العناصر.

بعد العثور على العنصر، انقر بزر الماوس الأيمن على HTML في اللوحة وانسخ محدد CSS.

3. اكتب مطالبة مفصلة لـ ChatGPT.

اكتب مطالبة تتضمن:

  • عنوان URL المستهدف؛
  • المحددات التي نسختها؛
  • المكتبات التي تريد استخدامها، مثل: requests, BeautifulSoup

اذكر البروكسيات والترويسات، لكن لا تشارك بيانات اعتمادك مع ChatGPT.  

الصق مطالبتك في ChatGPT. مطالبتنا: 

“أنشئ أداة لتجريف الويب باستخدام مكتبات Python وBeautiful Soup وRequests. استورد time. موقع الويب المستهدف: 

https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population

الهدف: جرّف الدول وأعداد سكانها من الصفحة المستهدفة. استخدم بروكسيات DataImpulse كحماية إضافية. أضف الترويسات. 

هذه هي محددات CSS:

  • الدولة: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(1) > a
  • عدد السكان: #mw-content-text > div.mw-content-ltr.mw-parser-output > table > tbody > tr:nth-child(2) > td:nth-child(2)

المخرجات: احفظ كل البيانات المجرّفة في ملف CSV.

تعليمات إضافية: أزل الرموز غير المرغوب فيها من ملف CSV الناتج.”

إليك استجابة ChatGPT:

  • راجع الشيفرة النهائية وشغّلها.

انسخ النص البرمجي إلى محررك وشغّله. قد تحتاج إلى بعض تصحيح الأخطاء إذا اختلفت المحددات أو التنسيق. إذا كنت تستخدم بروكسيات، فأدرج دائماً ترويسات User-Agent لدعم وصول متسق. تتيح إضافة import time استخدام تأخيرات بين الطلبات (time.sleep())، مما يساعد على موازنة حمل الطلبات. إليك الشيفرة: 


import requests
from bs4 import BeautifulSoup
import csv
import re
import time
# DataImpulse proxy configuration
PROXY = "http://username:[email protected]:8000"
proxies = {
    "http": PROXY,
    "https": PROXY
}
url = "https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population"
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/119.0.0.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
}

# Try with retry logic
for attempt in range(3):
    try:
        response = requests.get(url, headers=headers, proxies=proxies, timeout=15)
        response.raise_for_status()
        break
    except requests.exceptions.HTTPError as e:
        print(f"Attempt {attempt+1}: HTTP error {e}. Retrying...")
        time.sleep(2)
else:
    raise SystemExit("Failed to fetch the page after retries.")

soup = BeautifulSoup(response.text, "html.parser")

# Locate the first wikitable
table = soup.find("table", {"class": "wikitable"})
rows = table.find_all("tr")
data = []
for row in rows[1:]:  # skip header row
    cols = row.find_all("td")
    if len(cols) >= 2:
        country = cols[0].get_text(strip=True)
        population = cols[1].get_text(strip=True)

        # Clean unwanted symbols
        population = re.sub(r"\[.*?\]", "", population)  # remove [1], [note] etc.
        population = population.replace(",", "").replace("\xa0", " ").strip()

        data.append([country, population])

# Save results to CSV
with open("countries_population.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.writer(f)
    writer.writerow(["Country", "Population"])
    writer.writerows(data)
print("Scraping completed. Data saved to countries_population.csv")

      
        






















































      

بعد تشغيل النص البرمجي، ستعرض لك وحدة Terminal في VS Code ما يلي:

افتح الآن ملف countries_population.csv . ستجد بداخله جدولاً منظماً يضم الدول وأعداد سكانها. تهانينا على إتمام المهمة!

المشكلات المحتملة

عند التجريف، لا تسير الأمور دائماً كما نتوقع. إليك بعض المشكلات الشائعة: 

  1. خطأ العميل 403: تحظر بعض مواقع الويب الطلبات التي لا تبدو صادرة من متصفح حقيقي. أدرج دائماً ترويسات مثل User-Agent، وخصوصاً عند استخدام البروكسيات.
  2. حظر IP أو تقييد المعدل:  تكشف الطلبات المتكررة عادةً عن IP الخاص بك، وقد ترفض مواقع الويب الوصول أو تعرض عليك مهام تحقق. استخدم بروكسيات سكنية (سريعة وموثوقة ومن أجهزة منزلية حقيقية) أو بروكسيات محمولة (ديناميكية ويصعب اكتشافها ومن مشغلي شبكات الهاتف المحمول) للحد من انقطاعات التحقق.
  3. انتهاء المهلة أو بطء الاستجابات: قد يكون موقع الويب أو اتصالك بطيئاً، مما يؤدي إلى فشل الطلبات. أضف time.sleep() بين الطلبات ونفّذ منطق إعادة المحاولة.
  4. محددات CSS معطلة: تغير مواقع الويب تخطيطها كثيراً، لذا قد تتوقف المحددات المحفوظة عن العمل. افحص العناصر مجدداً في المتصفح وحدّث المحددات في النص البرمجي.
  5. بيانات غير مرتبة: قد يحتوي HTML على رموز إضافية أو قيم فارغة أو تنسيق غير متوقع. نظّف البيانات في Python قبل حفظها في CSV، مثل إزالة الأحرف الخاصة أو حذف المسافات الزائدة.

هل لتجريف الويب بمساعدة الذكاء الاصطناعي مستقبل؟

الإجابة البسيطة: نعم. لا تستبدل أدوات الذكاء الاصطناعي مثل ChatGPT المطورين، بل تعزز قدراتهم. تتولى هذه الأدوات مهام البرمجة المتكررة، وتنشئ نصوص التجريف بسرعة، وتقترح حلولاً للأخطاء الشائعة. سيساعد التجريف بمساعدة الذكاء الاصطناعي المحترفين على العمل بوتيرة أسرع، والحفاظ على الكفاءة، والتركيز على التحليل عالي المستوى بدلاً من البرمجة اليدوية. ومع ذلك، من المهم الحفاظ على التوازن.

وبالطبع، حتى مع الذكاء الاصطناعي، من المهم إجراء التجريف بمسؤولية. استخدم بروكسيات موثوقة، واحترم حدود المعدل، واتبع شروط خدمة موقع الويب لممارسة التجريف بصورة أخلاقية.

 

*هذا الدليل مخصص حصراً لأغراض تعليمية. وهو يوضح تقنيات تجريف الويب. وليس المقصود منه تشجيع أي شخص أو إرشاده إلى تجريف مواقع الويب بما يخالف شروط خدمتها أو القوانين المعمول بها. احرص دائماً على أن تكون أنشطة التجريف التي تجريها أخلاقية وقانونية وتحترم قواعد مواقع الويب.

Share article: