ساعدت بساطة Python وقدرتها على التكيف في اكتساب شعبية على مر السنين. يمكنك بسهولة استرداد البيانات المفيدة عبر الإنترنت باستخدام Python. يمكنك بعد ذلك استخدام هذه البيانات لتشغيل تطبيق عملي.

تعرف على كيفية العثور على بيانات الطقس في الوقت الفعلي باستخدام تجريف الويب وواجهات برمجة التطبيقات. يمكنك استخدام هذه البيانات التي تم جلبها لتطوير تطبيق بسيط للطقس.

احصل على تفاصيل الطقس الحالية لمدينة باستخدام تجريف الويب

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

يمكنك استخراج بيانات الطقس الحية لأي مدينة باستخدام تجريف الويب. مكتبة Python BeautifulSoup هي مكتبة go-to لسحب البيانات من ملفات HTML و XML. تحتاج إلى تثبيت مكتبة BeautifulSoup Python عبر النقطة لبدء عملية الكشط. قم بتشغيل الأمر التالي في الجهاز لتثبيت BeautifulSoup وطلب المكتبات:

نقطة ثَبَّتَ طلبات beautifulsoup4

بعد تثبيت المكتبات المطلوبة ، ابدأ باستيرادها في شفرتك:

instagram viewer

الكود المستخدم في هذا المشروع متاح في ملف مستودع جيثب وهو مجاني لك لاستخدامه بموجب ترخيص MIT.

من بكالوريوس 4 يستورد شوربة جميلة
يستورد الطلبات

بعد ذلك ، تحتاج إلى تقديم تفاصيل العنوان حتى يتمكن العميل والخادم من تمرير معلومات إضافية مع طلب أو استجابة HTTP:

رؤوس = {
'وكيل المستخدم': 'Mozilla / 5.0 (Windows NT 10.0 ؛ Win64 ؛ x64) AppleWebKit / 537.36 (KHTML ، مثل Gecko) Chrome / 58.0.3029.110 Safari / 537.3'
}

إنشاء وظيفة ، find_weather ()، لتقديم طلب بحث إلى Google باستخدام طلبات الحصول على () طريقة. ستستخدم عنوان URL للبحث للحصول على طقس المدينة ، ثم تتخلص من البيانات المهمة للحصول على الموقع ودرجة الحرارة والوقت ووصف الطقس. ثم استخدم BeautifulSoup لتحليل استجابة HTML المستلمة:

deffind_weather(اسم المدينة):
city_name = city_name.replace ("", "+")

يحاول:
res = request.get (
F'https://www.google.com/search? ف = {city_name}&oq = {city_name}&aqs = الكروم. 0.35i39l2j0l4j46j69i60.6128j1j7&المصدر = الكروم&أي = UTF-8'، رؤوس = رؤوس)

مطبعة("تحميل...")

حساء = شوربة جميلة (res.text ، 'html.parser')
الموقع = soup.select ('#wob_loc') [0] .getText (). strip ()
الوقت = حساء. اختر ('#wob_dts') [0] .getText (). strip ()
info = soup.select ('#wob_dc') [0] .getText (). strip ()
درجة الحرارة = حساء. اختر ('#wob_tm') [0] .getText (). strip ()

مطبعة("موقع: " + الموقع)
مطبعة("درجة حرارة: " + درجة الحرارة + "°ج")
مطبعة("وقت: " + الوقت)
مطبعة("وصف الطقس: " + معلومات)
يستثني:
مطبعة("الرجاء إدخال اسم مدينة صالح")

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

بعد ذلك ، قم بتمرير هذه المعرفات إلى يختار() طريقة. تقوم هذه الطريقة بتشغيل محدد CSS مقابل المستند الذي تم تحليله وإرجاع جميع العناصر المطابقة. ال الحصول على النص() طريقة لاستخراج النص من عنصر HTML. ال يجرد() يزيل الأسلوب أي أحرف مسافات بيضاء سابقة ولاحقة من النص. بمجرد استخراج قيمة نظيفة ، يمكنك تخزينها في متغير.

أخيرًا ، اطلب من المستخدم إدخال مدينة وتمريرها إلى find_weather وظيفة:

city_name = المدخلات ("أدخل اسم المدينة: ")
city_name = city_name + " طقس"
find_weather (city_name)

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

احصل على تفاصيل الطقس الحالية لمدينة باستخدام OpenWeatherMap API

OpenWeatherMap هي خدمة عبر الإنترنت مملوكة لشركة OpenWeather Ltd. توفر واجهة برمجة التطبيقات الخاصة بها بيانات الطقس العالمية بما في ذلك الطقس الحالي والتنبؤات والبيانات السابقة لأي موقع. توفر الطبقة المجانية من OpenWeatherMap API بيانات الطقس الحالية بحد 60 مكالمة / دقيقة. تحتاج إلى إنشاء حساب على OpenWeatherMap للحصول على مفتاح API الخاص بك.

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

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

الآن ، أنت جاهز لاسترداد بيانات الطقس الحية.

# استيراد مكتبات
يستورد الطلبات
يستورد json

# أدخل مفتاح OpenWeatherMap API الخاص بك هنا
# لا تدفعه إلى مستودع عام
API_Key = "Your_API_Key"

# أدخل اسم مدينة صالحًا
city_name = المدخلات ("أدخل اسم المدينة: ")

# إنشاء مسار URL الخاص بواجهة برمجة التطبيقات
url = f"http://api.openweathermap.org/data/2.5/weather? ف = {city_name}&appid = {API_Key}"

# تقديم طلب الحصول على API
استجابة = request.get (url)

# تحويل استجابة JSON إلى قاموس
res = response.json ()

# Uncomment السطر التالي لرؤية كل شيء
# البيانات التي تم جلبها من واجهة برمجة التطبيقات
# طباعة (الدقة)

# التحقق مما إذا تم العثور على المدينة
# إذا كانت قيمة "cod" ليست 404 ،
# هذا يعني أن المدينة موجودة
إذا الدقة ["سمك القد"] != "404":
البيانات = الدقة ["رئيسي"]

# تخزين بيانات درجة الحرارة الحية
live_temperature = البيانات ["درجة حرارة"]

# تخزين بيانات الضغط الحية
live_pressure = البيانات ["ضغط"]
تنازلي = الدقة ["طقس"]

# تخزين وصف الطقس
weather_description = تنازلي [0] ["وصف"]
مطبعة("درجة الحرارة (بمقياس كلفن): " + str (live_temperature))
مطبعة("ضغط: " + str (live_pressure))
مطبعة("وصف: " + str (weather_description))

آخر:
# إذا لم يتم العثور على المدينة ،
# سيتم تنفيذ كتلة الكود هذه
مطبعة("الرجاء إدخال اسم مدينة صالح")

إذا قدمت مفتاح API صالحًا وأدخلت اسم المدينة الصحيح ، فستتلقى البيانات من API بتنسيق JSON. بعد ذلك ، تحتاج إلى تحويل بيانات تنسيق JSON هذه إلى كائن Python باستخدام ملحق json () طريقة لإجراء مزيد من العمليات. إذا تم العثور على المدينة ، فسيتعين عليك حل كائن dict (الدقة) لاستخراج المعلومات المطلوبة.

تطوير تطبيق الطقس باستخدام بيانات الطقس الحية

الآن بعد أن تعلمت كيفية جلب البيانات الحية باستخدام OpenWeatherMap API ، فأنت جاهز لتطوير تطبيق بسيط للطقس باستخدامه. يمكن أن يساعدك إنشاء تطبيق الطقس في تطبيق ما تعرفه وصقل مهاراتك في Python.

يمكن أن يجعلك جعل يديك متسخين في مشاريع عملية مطورًا أفضل. يمكنك تطوير بعض مشاريع Python الأخرى مثل نظام تسجيل الدخول أو تطبيق الاختبار أو تقصير عناوين URL لترسيخ مهارات تطوير Python لديك.