Lấy dữ liệu từ web vào excel bằng python

Sự đơn giản và dễ thích ứng của Python giúp nó trở nên phổ biến trong những năm qua. Bạn có thể dễ dàng truy xuất dữ liệu hữu ích từ internet với Python. Sau đó, bạn có thể dùng những dữ liệu ấy để tăng cường cho một ứng dụng thực tế.

Trong bài viết này, bạn sẽ được học cách tìm dữ liệu thời tiết theo thời gian thực bằng cách sử dụng API và web scraping. Bạn có thể sử dụng dữ liệu đã được tìm nạp này để phát triển một ứng dụng thời tiết đơn giản.

Lấy thông tin thời tiết hiện tại của một thành phố bằng web scraping

Web scraping là quá trình trích xuất dữ liệu và nội dung từ một trang web. Tự động tìm nạp dữ liệu từ web mở ra rất nhiều trường hợp sử dụng. Tuy nhiên, hầu hết dữ liệu này đều ở định dạng HTML, bạn cần phải phân tích cú pháp và kiểm tra để trích xuất dữ liệu có liên quan.

Với tính năng web scraping, bạn có thể trích xuất dữ liệu thời tiết trực tiếp của bất kỳ thành phố nào. Thư viện BeautifulSoup của Python là thư viện cần dùng cho viết lấy dữ liệu ra khỏi các tệp HTML và XML. Bạn cần cài thư viện BeautifulSoup Python qua pip để bắt đầu quá trình scraping. Chạy lệnh sau trong terminal để cài BeautifulSoup và các thư viện yêu cầu:

pip install beautifulsoup4 requests

Sau khi đã cài xong các thư viện yêu cầu, bạn bắt đầu bằng cách nhập chúng vào code của bạn:

from bs4 import BeautifulSoup
import requests

Tiếp theo, bạn cần cung cấp chi tiết header để client và server có thể chuyển thông tin bổ sung với một yêu cầu hoặc phản hồi

headers = {
    'User-Agent': 'Mozilla/5.0 [Windows NT 10.0; Win64; x64] AppleWebKit/537.36 [KHTML, like Gecko] Chrome/58.0.3029.110 Safari/537.3'
}

Tạo một hàm là find_weather[] để thực hiện một truy vấn tới Google bằng phương thức request.get[]. Bạn sẽ sử dụng công cụ tìm kiếm để biết thời tiết của một thành phố sau đó thu thập dữ liệu có ý nghĩa để có được vị trí, nhiệt độ, thời gian và mô tả thời tiết. Sau đó, sử dụng BeautifulSoup để phân tích cú pháp HTML phản hồi nhận được:

def find_weather[city_name]:
   city_name = city_name.replace[" ", "+"]
 
   try:
       res = requests.get[
           f'//www.google.com/search?q={city_name}&oq={city_name}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8', headers=headers]
      
       print["Loading..."]
 
       soup = BeautifulSoup[res.text, 'html.parser']
       location = soup.select['#wob_loc'][0].getText[].strip[]
       time = soup.select['#wob_dts'][0].getText[].strip[]
       info = soup.select['#wob_dc'][0].getText[].strip[]
       temperature = soup.select['#wob_tm'][0].getText[].strip[]
 
       print["Location: " + location]
       print["Temperature: " + temperature + "°C"]
       print["Time: " + time]
       print["Weather Description: " + info]
   except:
       print["Please enter a valid city name"]

Để trích xuất các ID phần tử, hãy tìm kiếm trên Google và xem nguồn trang trong trình duyệt của bạn bằng công cụ web. Bạn cần kiểm tra phần tử để tìm ID của phẩn từ HTML mà bạn muốn trích xuất dữ liệu:

Tiếp theo, chuyển các ID này vào phương thức select[]. Phương thức này chạy một bộ chọn CSS dựa trên tài liệu được phân tích cú pháp và trả về tất cả các phần tử phủ hợp. Phương thức getText[] trích xuất văn bản từ phần tử HTML. Phương thức strip[] xóa mọi ký tự khoảng trắng ở đầu và cuối khỏi văn bản. Sau khi trích xuất một giá trị rõ ràng, bạn có thể lưu trữ giá trị đó trong một biến.

Cuối cùng, yêu cầu người dùng nhập thành phố và chuyển thành phố đó vào hàm find_weather[]:

city_name = input["Enter City Name: "]
city_name = city_name + " weather"
find_weather[city_name]

Bây giờ, khi bạn chạy code, nó sẽ nhắc bạn nhập tên một thành phố. Bạn phải nhập đúng tên thành phố mới cho ra kết quả đúng, nếu không code sẽ hiển thị thông báo lỗi.

Lấy thông tin thời tiết hiện tại của một thành phố bằng API OpenWeatherMap

OpenWeatherMap là một dịch vụ trực tuyến thuộc sở hữu của OpenWeather Ltd. API của nó cung cấp dữ liệu thời tiết toàn cầu bao gồm thời tiết hiện tại, dự báo và dữ liệu trong quá khứ của bất kỳ địa điểm nào. Phiên bản miễn phí của API OpenWeatherMap cung cấp dữ liệu thời tiết hiện tại với giới hạn 60 lần gọi trên mỗi phút. Bạn cần tạo một tài khoản trên OpenWeatherMap để nhận khóa API của riêng bạn.

Cảnh báo: Đững đẩy code với khóa API lên các repo công cộng bởi bất cứ ai có quyền truy cập vào file nguồn của bạn cũng sẽ thấy và có thể đánh cắp key. Trong ứng dụng sản phẩm, hãy xem xét việc đưa dữ liệu key API vào file .env để tăng cường bảo mật.

Truy cập vào trang OpenWeatherMap và tạo một tài khoản miễn phí. Sau khi tạo tài khoản, bạn có thể tìm thấy khóa API của bạn trên trang My API Keys. Bạn có thể sử dụng khóa API mặc định được cung cấp bởi OpenWeatherMap hoặc tạo ra khóa của riêng mình. OpenWeatherMap cho phép bạn tạo bao nhiêu khóa API cũng được, tùy theo nhu cầu của bạn.

Bây giờ, bạn đã sẵn sàng để truy xuất dữ liệu thời tiết trực tiếp:

# Importing libraries
import requests
import json
 
# Enter your OpenWeatherMap API key here
# DO NOT push it to a public repository
API_Key = "Your_API_Key"
 
# Provide a valid city name
city_name = input["Enter city name: "]
 
# Constructing the API URL path
url = f"//api.openweathermap.org/data/2.5/weather?q={city_name}&appid={API_Key}"
 
# Making a get request to the API
response = requests.get[url]
 
# Converting JSON response to a dictionary
res = response.json[]
 
# Uncomment the next line to see all
# data that are fetched from the API
# print[res]
 
# Checking if the city is found
# If the value of "cod" is not 404,
# that means the city is found
if res["cod"] != "404":
   data = res["main"]
 
   # Storing the live temperature data
   live_temperature = data["temp"]
 
   # Storing the live pressure data
   live_pressure = data["pressure"]
   desc = res["weather"]
 
   # Storing the weather description
   weather_description = desc[0]["description"]
   print["Temperature [in Kelvin scale]: " + str[live_temperature]]
   print["Pressure: " + str[live_pressure]]
   print["Description: " + str[weather_description]]
 
else:
   # If the city is not found,
   # this block of code will be executed
   print["Please enter a valid city name"]

Nếu bạn cung cấp đúng key API và đúng tên thành phố, bạn sẽ nhận được dữ liệu từ API dưới định dạng JSON. Tiếp theo, bạn cần chuyển đổi dữ liệu định dạng JSON này thành một đối tượng Python bằng phương thức json[] để thực hiện các hành động khác. Nếu thành phố được tìm thấy, bạn sẽ phải giải quyết đối tượng dict [res] để trích xuất thông tin cần thiết.

Phát triển ứng dụng thời tiết bằng dữ liệu thời tiết trực tiếp

Giờ đây, bạn đã học được cách lấy dữ liệu trực tiếp bằng API OpenWeatherMap, bằng cách sử dụng nó bạn đã sẵn sàng để phát triển một ứng dụng thời tiết đơn giản. Xây dựng một ứng dụng thời tiết có thể giúp bạn áp dụng những gì bạn đã biết và trau dồi kỹ năng Python của bạn.

Chăm chỉ thực hành sẽ giúp bạn trở thành một nhà phát triển có kỹ năng cao. Bạn có thể phát triển một số dự án Python khác như hệ thống đăng nhập, ứng dụng giải đó hoặc trình rút gọn URL để phát triển các kỹ năng Python của mình.

  • Python là gì? Tại sao nên chọn Python?
  • Hàm super[] trong Python
  • Hàm str[] trong Python
  • Hàm sorted[] trong Python

Thứ Tư, 09/11/2022 09:53

52 👨 2.283

#Bài tập Python

0 Bình luận

Sắp xếp theo

Xóa Đăng nhập để Gửi

Bạn nên đọc

  • Microsoft bổ sung tính năng “like comment” trong Word
  • Nghiên cứu cho thấy 3D gây mệt mỏi và nhức mắt
  • Cài đặt Windows 8 trên phân vùng mới
  • HTC thay Giám đốc marketing mới
  • Google "đau đầu" vì thị phần ít ỏi của Android 4.0
  • Dell giới thiệu màn hình vi tính 4K giá rẻ nhất thị trường

Python

  • Python là gì? Tại sao nên chọn Python?
  • Viết chương trình kết hợp hai danh sách đã được sắp xếp bằng Python
  • Cách lấy dữ liệu thời tiết trực tiếp bằng Python
  • Viết chương trình tính số cách leo cầu thang bằng Python
  • Viết chương trình đảo ngược chuỗi bằng Python
  • 3 cách duyệt qua danh sách dễ dàng trên Python
  • Danh sách Keyword trong Python
  • Viết chương trình kiểm tra một số có phải lũy thừa của 2 không bằng Python
  • Viết chương trình đồng hồ báo thức bằng Python
Xem thêm

  • Công nghệ
    • Ứng dụng
    • Hệ thống
    • Game - Trò chơi
    • iPhone
    • Android
    • Linux
    • Nền tảng Web
    • Đồng hồ thông minh
    • Chụp ảnh - Quay phim
    • macOS
    • Phần cứng
    • Thủ thuật SEO
    • Kiến thức cơ bản
    • Raspberry Pi
    • Dịch vụ ngân hàng
    • Lập trình
    • Dịch vụ công trực tuyến
    • Dịch vụ nhà mạng
    • Nhà thông minh
  • Download
    • Ứng dụng văn phòng
    • Tải game
    • Tiện ích hệ thống
    • Ảnh, đồ họa
    • Internet
    • Bảo mật, Antivirus
    • Họp, học trực tuyến
    • Video, phim, nhạc
    • Mail
    • Lưu trữ đám mây
    • Giao tiếp, liên lạc, hẹn hò
    • Hỗ trợ học tập
    • Máy ảo
  • Tiện ích
  • Khoa học
    • Khoa học vui
    • Khám phá khoa học
    • Bí ẩn - Chuyện lạ
    • Chăm sóc Sức khỏe
    • Khoa học Vũ trụ
    • Khám phá thiên nhiên
  • Điện máy
    • Tủ lạnh
    • Tivi
    • Điều hòa
    • Máy giặt
  • Cuộc sống
    • Kỹ năng
    • Món ngon mỗi ngày
    • Làm đẹp
    • Nuôi dạy con
    • Chăm sóc Nhà cửa
    • Kinh nghiệm Du lịch
    • Halloween
    • Mẹo vặt
    • Giáng sinh - Noel
    • Tết 2023
    • Quà tặng
    • Giải trí
    • Là gì?
    • Nhà đẹp
    • TOP
    • Phong thủy
  • Video
    • Công nghệ
    • Cisco Lab
    • Microsoft Lab
    • Video Khoa học
  • Ô tô, Xe máy
    • Giấy phép lái xe
  • Làng Công nghệ
    • Tấn công mạng
    • Chuyện công nghệ
    • Công nghệ mới
    • Trí tuệ nhân tạo [AI]
    • Anh tài công nghệ
    • Bình luận công nghệ
    • Tổng hợp
  • Học CNTT
    • Quiz công nghệ
    • Microsoft Word 2016
    • Microsoft Word 2013
    • Microsoft Word 2007
    • Microsoft Excel 2019
    • Microsoft Excel 2016
    • Hàm Excel
    • Microsoft PowerPoint 2019
    • Microsoft PowerPoint 2016
    • Google Sheets - Trang tính
    • Photoshop CS6
    • Photoshop CS5
    • HTML
    • CSS và CSS3
    • Python
    • Học SQL
    • Lập trình C
    • Lập trình C++
    • Lập trình C#
    • Học HTTP
    • Bootstrap
    • SQL Server
    • JavaScript
    • Học PHP
    • jQuery
    • Học MongoDB
    • Unix/Linux
    • Học Git
    • NodeJS

Giới thiệu | Điều khoản | Bảo mật | Hướng dẫn | Ứng dụng | Liên hệ | Quảng cáo | Facebook | Youtube | DMCA

Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản: CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. Địa chỉ: 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại: 024 2242 6188. Email: info@meta.vn. Chịu trách nhiệm nội dung: Lê Ngọc Lam.

Bản quyền © 2003-2022 QuanTriMang.com. Giữ toàn quyền. Không được sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc QuanTriMang.com khi chưa được phép.

Chủ Đề