Η απλότητα και η προσαρμοστικότητα της Python την έχουν βοηθήσει να αποκτήσει δημοτικότητα όλα αυτά τα χρόνια. Μπορείτε εύκολα να ανακτήσετε χρήσιμα δεδομένα μέσω του Διαδικτύου με την Python. Στη συνέχεια, μπορείτε να χρησιμοποιήσετε αυτά τα δεδομένα για να δημιουργήσετε μια πρακτική εφαρμογή.

Μάθετε πώς να βρίσκετε δεδομένα καιρού σε πραγματικό χρόνο χρησιμοποιώντας την απόξεση ιστού και API. Μπορείτε να χρησιμοποιήσετε αυτά τα δεδομένα που ανακτήθηκαν για να αναπτύξετε μια απλή εφαρμογή καιρού.

Λάβετε τρέχουσες λεπτομέρειες καιρού μιας πόλης χρησιμοποιώντας το Web Scraping

Το web scraping είναι η διαδικασία εξαγωγής δεδομένων και περιεχομένου από έναν ιστότοπο. Η αυτόνομη ανάκτηση δεδομένων από τον Ιστό ανοίγει πολλές περιπτώσεις χρήσης. Αλλά τα περισσότερα από αυτά τα δεδομένα είναι σε μορφή HTML, την οποία πρέπει να αναλύσετε και να επιθεωρήσετε για να εξαγάγετε σχετικά δεδομένα.

Μπορείτε να εξαγάγετε ζωντανά δεδομένα καιρού οποιασδήποτε πόλης χρησιμοποιώντας την απόξεση ιστού. Η βιβλιοθήκη BeautifulSoup της Python είναι η βασική βιβλιοθήκη

instagram viewer
για την εξαγωγή δεδομένων από αρχεία HTML και XML. Πρέπει να εγκαταστήσετε τη βιβλιοθήκη BeautifulSoup Python μέσω pip για να ξεκινήσετε τη διαδικασία απόξεσης. Εκτελέστε την ακόλουθη εντολή στο τερματικό για να εγκαταστήσετε τις βιβλιοθήκες BeautifulSoup και αιτημάτων:

κουκούτσι εγκαθιστώ όμορφη σούπα4 αιτήματα

Αφού εγκαταστήσετε τις απαιτούμενες βιβλιοθήκες, ξεκινήστε με την εισαγωγή τους στον κώδικά σας:

Ο κώδικας που χρησιμοποιείται σε αυτό το έργο είναι διαθέσιμος στο α Αποθετήριο GitHub και είναι δωρεάν για χρήση βάσει της άδειας MIT.

από bs4 εισαγωγή Όμορφη Σούπα
εισαγωγή αιτήσεων

Στη συνέχεια, πρέπει να παρέχετε τις λεπτομέρειες της κεφαλίδας, έτσι ώστε ο πελάτης και ο διακομιστής να μπορούν να μεταβιβάσουν πρόσθετες πληροφορίες με αίτημα ή απάντηση HTTP:

κεφαλίδες = {
'User-Agent': '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 χρησιμοποιώντας το requests.get() μέθοδος. Θα χρησιμοποιήσετε μια διεύθυνση URL αναζήτησης για να δείτε τον καιρό μιας πόλης και, στη συνέχεια, θα ξύσετε τα σημαντικά δεδομένα για να λάβετε την τοποθεσία, τη θερμοκρασία, την ώρα και την περιγραφή του καιρού. Στη συνέχεια, χρησιμοποιήστε το BeautifulSoup για να αναλύσετε τη ληφθείσα απάντηση HTML:

defεύρεση_καιρού(Ονομα Πόλης):
city_name = city_name.replace("", "+")

δοκιμάστε:
res = requests.get(
φά'https://www.google.com/search? q={όνομα_πόλης}&oq={όνομα_πόλης}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=χρώμιο&δηλαδή=UTF-8', κεφαλίδες=κεφαλίδες)

Τυπώνω("Φόρτωση...")

σούπα = BeautifulSoup (res.text, 'html.parser')
τοποθεσία = σούπα.επιλογή('#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 έναντι του αναλυμένου εγγράφου και επιστρέφει όλα τα στοιχεία που ταιριάζουν. ο getText() μέθοδος εξάγει το κείμενο από το στοιχείο HTML. ο λωρίδα() Η μέθοδος αφαιρεί από το κείμενο τυχόν χαρακτήρες κενού διαστήματος που προηγούνται και ακολουθούν. Αφού εξαγάγετε μια καθαρή τιμή, μπορείτε να την αποθηκεύσετε σε μια μεταβλητή.

Τέλος, ζητήστε από τον χρήστη να εισαγάγει μια πόλη και να τη μεταβιβάσει στο εύρεση_καιρού λειτουργία:

όνομα_πόλης = είσοδος("Εισαγάγετε όνομα πόλης: ")
όνομα_πόλης = όνομα_πόλης + " καιρός"
find_weather (όνομα_πόλης)

Τώρα, όταν εκτελείτε τον κωδικό, θα σας ζητήσει να εισαγάγετε ένα όνομα πόλης. Πρέπει να εισαγάγετε ένα έγκυρο όνομα πόλης για να λάβετε τα αποτελέσματα διαφορετικά ο κωδικός θα δημιουργήσει μια εξαίρεση.

Λάβετε τρέχουσες λεπτομέρειες καιρού μιας πόλης χρησιμοποιώντας το OpenWeatherMap API

Το OpenWeatherMap είναι μια διαδικτυακή υπηρεσία, που ανήκει στην OpenWeather Ltd. Το API του παρέχει παγκόσμια δεδομένα καιρού, συμπεριλαμβανομένων τρέχοντος καιρού, προβλέψεων και προηγούμενων δεδομένων για οποιαδήποτε τοποθεσία. Το δωρεάν επίπεδο του OpenWeatherMap API παρέχει τρέχοντα δεδομένα καιρού με όριο 60 κλήσεις/λεπτό. Πρέπει να δημιουργήσετε έναν λογαριασμό στο OpenWeatherMap για να αποκτήσετε το δικό σας κλειδί API.

Μην σπρώχνετε τον κώδικα με το κλειδί API σε δημόσιο χώρο αποθήκευσης, καθώς οποιοσδήποτε έχει πρόσβαση στα αρχεία προέλευσης μπορεί να δει και να κλέψει το κλειδί σας. Σε μια εφαρμογή παραγωγής, σκεφτείτε μετακίνηση των δεδομένων κλειδιού API σε ένα αρχείο .env για ενισχυμένη ασφάλεια.

Παω σε OpenWeatherMap's ιστοσελίδα και δημιουργήστε έναν δωρεάν λογαριασμό. Μετά τη δημιουργία του λογαριασμού, μπορείτε να βρείτε τα κλειδιά API σας στο Τα κλειδιά API μου σελίδα. Μπορείτε να χρησιμοποιήσετε το προεπιλεγμένο κλειδί API που παρέχεται από το OpenWeatherMap ή να δημιουργήσετε ένα δικό σας. Το OpenWeatherMap παρέχει την υποστήριξη για να δημιουργήσετε όσα κλειδιά API χρειάζονται για τα έργα σας.

Τώρα, είστε έτοιμοι να ανακτήσετε τα ζωντανά δεδομένα καιρού.

# Εισαγωγή βιβλιοθηκών
εισαγωγή αιτήσεων
εισαγωγή json

# Εισαγάγετε το κλειδί OpenWeatherMap API εδώ
# ΜΗΝ το σπρώχνετε σε δημόσιο χώρο αποθήκευσης
API_Key = "Your_API_Key"

# Δώστε ένα έγκυρο όνομα πόλης
όνομα_πόλης = είσοδος("Εισαγάγετε το όνομα της πόλης: ")

# Κατασκευή της διαδρομής διεύθυνσης URL API
url = στ"http://api.openweathermap.org/data/2.5/weather? q={όνομα_πόλης}&appid={API_Key}"

# Υποβολή αιτήματος λήψης στο API
answer = requests.get (url)

# Μετατροπή απάντησης JSON σε λεξικό
res = answer.json()

# Καταργήστε το σχόλιο της επόμενης γραμμής για να δείτε όλες
# δεδομένα που λαμβάνονται από το API
# εκτύπωση (res)

# Έλεγχος αν βρέθηκε η πόλη
# Εάν η τιμή του "cod" δεν είναι 404,
# αυτό σημαίνει ότι η πόλη βρέθηκε
αν είναι ["γάδος"] != "404":
data = res["κύριος"]

# Αποθήκευση δεδομένων ζωντανής θερμοκρασίας
ζωντανή_θερμοκρασία = δεδομένα["θερμοκρασία"]

# Αποθήκευση των δεδομένων υπό πίεση
ζωντανή_πίεση = δεδομένα["πίεση"]
desc = res["καιρός"]

# Αποθήκευση της περιγραφής καιρού
καιρική_περιγραφή = περιγραφή[0]["περιγραφή"]
Τυπώνω("Θερμοκρασία (σε κλίμακα Kelvin): " + str (ζωντανή_θερμοκρασία))
Τυπώνω("Πίεση: " + str (ζωντανή_πίεση))
Τυπώνω("Περιγραφή: " + str (weather_description))

αλλού:
# Αν δεν βρεθεί η πόλη,
# αυτό το μπλοκ κώδικα θα εκτελεστεί
Τυπώνω("Εισαγάγετε ένα έγκυρο όνομα πόλης")

Εάν παρέχετε ένα έγκυρο κλειδί API και εισαγάγετε το σωστό όνομα πόλης, θα λάβετε τα δεδομένα από το API σε μορφή JSON. Στη συνέχεια, πρέπει να μετατρέψετε αυτά τα δεδομένα μορφής JSON σε αντικείμενο Python χρησιμοποιώντας το json() μέθοδος για την εκτέλεση περαιτέρω εργασιών. Εάν βρεθεί η πόλη, θα πρέπει να επιλύσετε το αντικείμενο dict (res) για να εξαγάγετε τις απαιτούμενες πληροφορίες.

Αναπτύξτε την εφαρμογή καιρού χρησιμοποιώντας τα ζωντανά δεδομένα καιρού

Τώρα που μάθατε πώς να ανακτάτε ζωντανά δεδομένα χρησιμοποιώντας το OpenWeatherMap API, είστε έτοιμοι να αναπτύξετε μια απλή εφαρμογή καιρού χρησιμοποιώντας το. Η δημιουργία μιας εφαρμογής καιρού μπορεί να σας βοηθήσει να εφαρμόσετε όσα γνωρίζετε και να βελτιώσετε τις δεξιότητές σας στο Python.

Το να λερώσετε τα χέρια σας σε πρακτικά έργα μπορεί να σας κάνει καλύτερο προγραμματιστή. Μπορείτε να αναπτύξετε κάποια άλλα έργα Python, όπως ένα σύστημα σύνδεσης, μια εφαρμογή κουίζ ή ένα πρόγραμμα συντόμευσης διευθύνσεων URL για να ενισχύσετε τις δεξιότητές σας στην ανάπτυξη Python.