Chào các anh em trong diễn đàn,
Dạo này công việc của mình hay phải lấy dữ liệu từ các trang web về để xử lý trên Excel. Việc copy-paste thủ công mất khá nhiều thời gian và dễ sai sót, đặc biệt là khi cần cập nhật thường xuyên. Mình có tìm hiểu và thử nghiệm một chút với Python để tự động hóa việc này, thấy khá hiệu quả nên muốn chia sẻ lại cho mọi người tham khảo.
Ý tưởng là mình sẽ dùng thư viện requests để lấy nội dung HTML từ một trang web nhất định, sau đó dùng BeautifulSoup để phân tích và trích xuất các bảng dữ liệu cần thiết. Cuối cùng, mình sẽ lưu dữ liệu đó ra file Excel.
Các bước cơ bản như sau:
- Cài đặt các thư viện cần thiết:
pip install requests beautifulsoup4 pandas openpyxl - Viết script Python để lấy dữ liệu:
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'ĐỊA_CHỈ_TRANG_WEB_CỦA_BẠN'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# Tìm bảng dữ liệu (ví dụ: bảng đầu tiên trên trang)
table = soup.find('table')
# Chuyển đổi bảng HTML sang DataFrame của Pandas
df = pd.read_html(str(table))[0]
# Lưu DataFrame ra file Excel
df.to_excel('du_lieu_tu_web.xlsx', index=False)
print('Đã cập nhật dữ liệu thành công!')Tất nhiên, mỗi trang web sẽ có cấu trúc HTML khác nhau nên đoạn code trên có thể cần chỉnh sửa tùy thuộc vào trang bạn muốn lấy dữ liệu. Tuy nhiên, đây là một điểm khởi đầu tốt để tự động hóa các tác vụ lặp đi lặp lại.
Anh em nào có kinh nghiệm hoặc đã từng làm những việc tương tự, có thể chia sẻ thêm các mẹo hay hoặc các thư viện hữu ích khác không?