عادةً ما يتضمن استخراج بيانات الويب في Python إرسال طلبات HTTP إلى موقع الويب المستهدف وتحليل بيانات HTML أو JSON التي تم إرجاعها. فيما يلي مثال لتطبيق بسيط لتجميع الويب يستخدم مكتبة الطلبات لإرسال طلبات HTTP ويستخدم BeautifulSouplibrary لتحليل HTML.
أولاً، تأكد من تثبيت الطلبات ومكتبات beautifulsoup4. إذا لم يكن الأمر كذلك، فيمكنك تثبيتها باستخدام الأمر التالي:
طلبات تثبيت النقاط beautifulsoup4
بعد ذلك، يمكنك كتابة برنامج Python النصي كما يلي لاستخراج بيانات الشبكة:
import requests from bs4 import BeautifulSoup # URL of the target website url = 'http://example.com' # Sending HTTP GET request response = requests.get(url) # Check if the request was successful if response.status_code == 200: # Parsing HTML with BeautifulSoup soup = BeautifulSoup(response.text, 'html.parser') # Extract the required data, for example, extract all the titles titles = soup.find_all('h1') # Print title for title in titles: print(title.text) else: print('Request failed,status code:', response.status_code)
في هذا المثال، قمنا أولاً باستيراد الطلبات والمكتبات الجميلة. بعد ذلك، قمنا بتحديد عنوان URL لموقع الويب المستهدف وأرسلنا طلب HTTP GET باستخدام طريقة request.get(). إذا كان الطلب ناجحًا (رمز الحالة هو 200)، فإننا نقوم بتحليل HTML الذي تم إرجاعه باستخدام BeautifulSoup واستخراج جميع علامات
يرجى ملاحظة أنه في مشروع تجريف الويب الفعلي، يتعين عليك الالتزام بقواعد ملف robots.txt لموقع الويب المستهدف واحترام حقوق الطبع والنشر وشروط الاستخدام الخاصة بموقع الويب. بالإضافة إلى ذلك، قد تستخدم بعض مواقع الويب تقنيات مضادة للزاحف، مثل تحميل المحتوى ديناميكيًا، والتحقق من رمز التحقق، وما إلى ذلك، مما قد يتطلب استراتيجيات معالجة أكثر تعقيدًا.
يعد استخدام وكيل للزحف إلى مواقع الويب طريقة شائعة للتحايل على قيود IP وآليات مكافحة الزحف. يمكن للخوادم الوكيلة أن تعمل كوسطاء، حيث تقوم بإعادة توجيه طلباتك إلى موقع الويب المستهدف وإعادة الرد إليك، بحيث يتمكن موقع الويب المستهدف من رؤية عنوان IP الخاص بالخادم الوكيل فقط بدلاً من عنوان IP الحقيقي الخاص بك.
في بايثون، يمكنك استخدام مكتبة الطلبات لإعداد الوكيل. فيما يلي مثال بسيط يوضح كيفية استخدام الوكيل لإرسال طلب HTTP:
import requests # The IP address and port provided by swiftproxy proxy = { 'http': 'http://45.58.136.104:14123', 'https': 'http://119.28.12.192:23529', } # URL of the target website url = 'http://example.com' # Sending requests using a proxy response = requests.get(url, proxies=proxy) # Check if the request was successful if response.status_code == 200: print('Request successful, response content:', response.text) else: print('Request failed,status code:', response.status_code)
لاحظ أنك بحاجة إلى استبدال عنوان IP للخادم الوكيل والمنفذ بعنوان الخادم الوكيل الفعلي. تأكد أيضًا من أن الخادم الوكيل موثوق به ويدعم موقع الويب الذي تريد الزحف إليه. قد تكتشف بعض مواقع الويب الطلبات الواردة من خوادم بروكسي معروفة وتحظرها، لذلك قد تحتاج إلى تغيير خوادم بروكسي بانتظام أو استخدام خدمة بروكسي أكثر تقدمًا.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3