| BUỔI 16: DATA PROCESSING VÀ DEPLOYMENT — ĐƯA ROBOT VÀO THỰC TẾ

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:08 | 51 lượt xem

Chúc mừng bạn đã đi đến chặng đường cuối cùng! Một con robot tốt không chỉ chạy trên máy tính của bạn, nó phải chạy được trên máy chủ một cách bền bỉ và hiệu quả. Hôm nay, chúng ta sẽ học các kỹ thuật Tối ưu hóaTriển khai (Deployment) chuyên nghiệp.


1️⃣ Chạy Ở Chế Độ Headless (Ẩn Danh)

Trên máy chủ, không có màn hình hiển thị. Chúng ta cần chạy trình duyệt ở chế độ Headless để tiết kiệm RAM và CPU, giúp robot chạy nhanh hơn gấp nhiều lần.

browser = p.chromium.launch(headless=True)

2️⃣ Xử Lý Dữ Liệu & Lưu Vào Database

Thay vì lưu file CSV lẻ tẻ, hãy học cách đẩy dữ liệu trực tiếp vào cơ sở dữ liệu (SQL/NoSQL) để xây dựng những kho tàng dữ liệu khổng lồ cho doanh nghiệp.


3️⃣ Quản Lý Tài Nguyên & Log Lỗi

Cài đặt cơ chế tự động gửi thông báo qua Telegram hoặc Email mỗi khi robot gặp sự cố hoặc hoàn thành công việc lấy dữ liệu của ngày hôm đó.


LỜI KẾT KHÓA HỌC

Lộ trình 16 Buổi Python Automation đã kết thúc, nhưng hành trình sáng tạo của bạn chỉ mới bắt đầu. Từ nay, bạn đã có “siêu năng lực” để điều khiển máy tính phục vụ cho mình. Hãy áp dụng những kiến thức này để giải phóng sức lao động và tạo ra những giá trị mới cho xã hội!

Hành trình vạn dặm bắt đầu từ một bước chân, và bạn đã đi được 16 bước rất vững chắc. Chúc bạn thành công!


🏆 Chứng nhận và bứt phá nghề nghiệp tại: Hướng nghiệp Python – Automation

| BUỔI 15: ADVANCED DATA EXTRACTION — KHAI THÁC DỮ LIỆU TỪ WEB HIỆN ĐẠI (SPA)

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:08 | 53 lượt xem

Các trang web hiện đại (Single Page Applications) không tải lại toàn bộ trang mà chỉ cập nhật từng phần bằng AJAX. Selenium thường gặp khó khăn tại đây, nhưng với Playwright, việc lấy dữ liệu từ React hay Angular trở nên dễ dàng hơn bao giờ hết.


1️⃣ Lắng Nghe Mạng Lưới (Network Interception)

Playwright có thể “nghe trộm” các cuộc gọi API ngầm của trình duyệt. Thay vì quét HTML, chúng ta có thể chộp lấy trực tiếp dữ liệu JSON sạch từ máy chủ gửi về.


2️⃣ Xử Lý Dynamic Content & Scrolling

Nhiều trang web (như Facebook, Shopee) yêu cầu bạn phải cuộn chuột xuống thì dữ liệu mới hiện ra (Infinite Scroll). Playwright cung cấp các lệnh cuộn chuột mượt mà để fetch đủ dữ liệu.


3️⃣ Kỹ Thuật Selector Thông Minh

Sử dụng page.locator() kết hợp với văn bản hoặc vị trí (near, left of…) giúp code của bạn không bị hỏng khi giao diện web thay đổi nhẹ nội dung CSS.


TỔNG KẾT BUỔI 15

Bạn đã đạt đến trình độ cao cấp trong việc lấy dữ liệu web. Không một website hiện đại nào có thể làm khó bạn được nữa. Ở bài cuối cùng, chúng ta sẽ học cách tối ưu hóa và đưa robot lên môi trường làm việc thực tế (Production)!


🔎 Khám phá bí mật dữ liệu tại: Hướng nghiệp Python – Automation

| BUỔI 14: PLAYWRIGHT SETUP VÀ BASICS — THẾ HỆ MỚI CỦA WEB AUTOMATION

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:08 | 56 lượt xem

Chào mừng bạn đến với Module cuối cùng! Nếu Selenium là “lão làng” thì Playwright (do Microsoft phát triển) chính là “siêu chiến binh” mới trong làng Automation. Nó nhanh hơn, ổn định hơn và cực kỳ mạnh mẽ khi đối đầu với các website hiện đại (React, Angular, Vue).


1️⃣ Tại Sao Nên Chuyển Sang Playwright?

Playwright tự động chờ các phần tử hiển thị (Auto-wait), cho phép quét dữ liệu trên nhiều trình duyệt cùng lúc và cực kỳ khó bị phát hiện bởi các hệ thống chặn Bot.

[!IMPORTANT]
🚀 Công nghệ Automation tương lai: Hướng nghiệp Python


2️⃣ Cài Đặt & Các Thao Tác Cơ Bản

Playwright đi kèm với tất cả các trình duyệt cần thiết, bạn không cần phải tải Driver thủ công như Selenium nữa.

pip install playwright
playwright install

3️⃣ Viết Code Playwright Đầu Tiên

Hãy xem cú pháp của Playwright gọn gàng thế nào nhé:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    page = browser.new_page()
    page.goto("https://www.huongnghieppython.com")
    print(page.title())
    browser.close()

TỔNG KẾT BUỔI 14

Playwright đang dần trở thành tiêu chuẩn mới trong ngành. Việc làm chủ nó sẽ giúp bạn có lợi thế rất lớn trong sự nghiệp Automation. Buổi tiếp theo, chúng ta sẽ học kỹ thuật lấy dữ liệu nâng cao trên các trang web “khó tính”!


⚡ Tốc độ hóa quy trình tại: Hướng nghiệp Python – Automation

| BUỔI 13: ADVANCED FILE OPERATIONS — “NGƯỜI GÁC CỔNG” THƯ MỤC TỰ ĐỘNG

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:08 | 59 lượt xem

Bạn muốn mỗi khi có ai đó thả một file Excel vào thư mục “Dữ liệu thô”, máy tính sẽ tự động dọn dẹp nó rồi gửi email báo cáo cho sếp? Hôm nay, chúng ta sẽ học cách dùng thư viện Watchdog để biến Python thành một người canh gác thư mục 24/7.


1️⃣ Thư Viện Watchdog & Sự Kiện File

Python có thể lắng nghe các sự kiện: Tạo mới (Created), Chỉnh sửa (Modified), Di chuyển (Moved) hoặc Xóa (Deleted) của bất kỳ tệp tin nào trong máy.


2️⃣ Kích Hoạt Workflow Tự Động (Triggers)

Mỗi khi có file mới, chúng ta sẽ kích hoạt (trigger) các hàm xử lý dữ liệu đã học ở Module trước. Đây là cách bạn tạo ra một “dây chuyền sản xuất” dữ liệu khép kín.


3️⃣ Lập Lịch Chạy Định Kỳ (Scheduling)

Ngoài việc chờ file, bạn cũng có thể cài đặt để Python tự chạy vào 8h sáng hàng ngày thông qua Task Scheduler (Windows) hoặc thư viện schedule của Python.

import schedule
import time

def job():
    print("Đang quét dữ liệu báo cáo sáng...")

schedule.every().day.at("08:00").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

TỔNG KẾT BUỔI 13

Chúc mừng bạn đã hoàn thành Module 4! Môi trường làm việc của bạn hiện đã được tối ưu hóa tối đa. Ở Module cuối cùng, chúng ta sẽ đến với công nghệ tương lai: Playwright — thế hệ kế thừa của Selenium để lấy dữ liệu web hiện đại!


🏗️ Xây dựng tương lai tự động tại: Hướng nghiệp Python – Automation

| BUỔI 11: FILE PROCESSING AUTOMATION — GIẢI PHÓNG ÁP LỰC VĂN PHÒNG

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:07 | 48 lượt xem

Chào mừng bạn đến với Module 4! Nếu công việc hàng ngày của bạn ngập trong Excel, PDF và Word, thì buổi học hôm nay sẽ giúp bạn tiết kiệm hàng giờ mỗi tuần. Chúng ta sẽ dùng Python để đọc, viết và xử lý hàng loạt tệp tin chỉ bằng một cú click chuột.


1️⃣ Tự Động Hóa Excel Với Openpyxl & Pandas

Không cần mở Excel, bạn có thể tự động tính toán, tạo định dạng màu sắc (Conditional Formatting) hay gộp 100 file Excel thành 1 báo cáo duy nhất trong chớp mắt.

[!IMPORTANT]
🚀 Lộ trình Automation văn phòng: Hướng nghiệp Python


2️⃣ Làm Việc Với PDF (Trích Xuất & Gộp File)

Sử dụng thư viện PyPDF2 hoặc pdfplumber giúp bạn tự động trích xuất nội dung từ hóa đơn PDF hoặc gộp nhiều file tài liệu lại với nhau mà không cần mua phần mềm trả phí.


3️⃣ Tạo Văn Bản Word Tự Động

Thay vì ngồi sửa tên khách hàng trên 100 hợp đồng khác nhau, hãy tạo một Template và để Python tự động điền thông tin và tạo ra 100 file Word chuyên nghiệp chỉ trong 1 giây.


TỔNG KẾT BUỔI 11

Tự động hóa file là kỹ năng thực tế nhất để nâng cao năng suất cá nhân. Từ nay, bạn sẽ không còn sợ hãi trước những đống tài liệu khổng lồ nữa. Ở buổi tiếp theo, chúng ta sẽ học cách gửi hàng loạt tệp tin này qua Email hoàn toàn tự động!


📂 Quản lý tệp tin thông minh tại: Hướng nghiệp Python – Automation

| BUỔI 10: API TESTING VÀ WORKFLOWS — CHUỖI TỰ ĐỘNG HÓA THÔNG MINH

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:06 | 44 lượt xem

Chào mừng bạn đến với bài học cuối cùng của Module API! Hôm nay chúng ta sẽ nâng tầm Automation bằng cách học cách Chaining (Chuỗi): lấy kết quả từ API này làm đầu vào cho API kia, và thiết lập cơ chế tự động thử lại (Retry) khi mạng chập chờn.


1️⃣ Xác Thực Phản Hồi (Response Validation)

Đừng chỉ tin vào Status Code, hãy học cách kiểm tra xem nội dung JSON trả về có đúng cấu trúc và dữ liệu bạn mong đợi hay không. Đây là nền tảng của API Testing.


2️⃣ Liên Kết Các API (Chaining API Calls)

Ví dụ: API 1 lấy danh sách ID khách hàng -> API 2 dùng ID đó để lấy số điện thoại -> API 3 tự động gửi tin nhắn. Đây là quy trình tự động hóa chuyên nghiệp!


3️⃣ Cơ Chế Retry & Rate Limiting

Học cách “lịch sự” khi gọi API để không bị chặn (Rate Limiting) và cách tự động gọi lại 3-5 lần nếu lần đầu thất bại do mạng lag.

from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry

session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)

session.get(url)

TỔNG KẾT BUỔI 10

Bạn đã chính thức làm chủ thế giới API Automation. Giờ đây, không có rào cản nào có thể ngăn cản bạn kết nối và xử lý dữ liệu giữa các hệ thống khác nhau. Ở Module 4, chúng ta sẽ học cách xử lý các tệp tin Excel, PDFEmail tự động để giải phóng đôi tay khỏi các công việc văn phòng!


🏆 Làm chủ quy trình hiện đại tại: Hướng nghiệp Python – Automation

| BUỔI 9: REQUESTS LIBRARY MASTERY — LÀM CHỦ CÁC CUỘC GỌI API CHUYÊN NGHIỆP

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:05 | 41 lượt xem

Ở buổi trước chúng ta đã học lý thuyết, hôm nay sẽ là thực hành đỉnh cao. Chúng ta sẽ sử dụng thư viện Requests để thực hiện các yêu cầu phức tạp hơn: cần mật khẩu (Authentication), gửi kèm tham số (Parameters) và xử lý khi API gặp lỗi.


1️⃣ Gửi Dữ Liệu Qua Headers & Parameters

Tham số giúp bạn lọc dữ liệu ngay từ phía máy chủ (ví dụ: chỉ lấy dữ liệu của ngày hôm nay).

import requests

params = {'q': 'python automation', 'page': 2}
headers = {'Authorization': 'Bearer YOUR_TOKEN_HERE'}

response = requests.get("https://api.example.com/search", params=params, headers=headers)
data = response.json()

2️⃣ Xử Lý Lỗi API & Status Codes

Một chuyên gia Automation luôn phải kiểm tra mã trạng thái (Status Code) để biết yêu cầu có thành công hay không:

  • 200/201: Thành công rực rỡ!
  • 401/403: Lỗi bảo mật, không đủ quyền truy cập.
  • 404: Không tìm thấy địa chỉ (URL sai).
  • 500: Lỗi từ phía máy chủ.

3️⃣ Cơ Chế Gửi Dữ Liệu (POST Request)

Để tạo một đơn hàng mới hoặc gửi một comment tự động, chúng ta dùng POST kèm theo khối dữ liệu (body) ở định dạng JSON.

new_post = {'title': 'Hello API', 'body': 'Auto content'}
r = requests.post("https://api.example.com/posts", json=new_post)

TỔNG KẾT BUỔI 9

Bạn đã làm chủ được “ngôn ngữ giao tiếp” của các ứng dụng hiện đại. Kỹ năng này cho phép bạn xây dựng các hệ thống tự động hóa vô cùng mạnh mẽ và ổn định. Ở buổi 10, chúng ta sẽ học cách kết nối nhiều API lại thành một quy trình (Workflow) hoàn chỉnh!


🛠️ Xây dựng giải pháp tự động tại: Hướng nghiệp Python – Automation

| BUỔI 7: DATA CLEANING VÀ STORAGE — BIẾN DỮ LIỆU THÔ THÀNH TÀI SẢN

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:02 | 48 lượt xem

Sau khi đã cào được hàng nghìn dòng dữ liệu ở các buổi trước, thách thức cuối cùng là: Làm sao để lưu chúng lại một cách ngăn nắp để sử dụng lâu dài? Và làm sao để dọn dẹp những ký tự thừa (khoảng trắng, icon…) để dữ liệu thật “sạch”?


1️⃣ Làm Sạch Dữ Liệu Web (Data Cleaning)

Dữ liệu lấy từ web thường đi kèm với các ký tự \n, \t hoặc các dấu cách thừa. Hãy sử dụng hàm .strip() và biểu thức chính quy (Regex) để xử lý chúng.

clean_text = raw_text.strip().replace('\n', ' ')

2️⃣ Lưu Dữ Liệu Vào CSV (Dùng Cho Excel)

CSV là định dạng phổ biến nhất vì nó cực kỳ nhẹ và có thể mở trực tiếp bằng Excel để xem báo cáo.

import csv

with open('data.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(['Tên SP', 'Giá'])
    writer.writerows(list_data)

3️⃣ Lưu Dữ Liệu Vào JSON (Dùng Cho App/Web)

Nếu bạn muốn dữ liệu của mình có cấu trúc phức tạp hơn (nồng nhau) để dùng cho các ứng dụng web khác, JSON là sự lựa chọn hoàn hảo.


TỔNG KẾT BUỔI 7

Chúc mừng bạn đã hoàn thành Module 2! Bạn hiện đã có một quy trình khép kín: Lấy dữ liệu -> Làm sạch -> Lưu trữ. Đây chính là nền tảng của các dự án Big Data. Ở Module 3, chúng ta sẽ học cách làm việc với API — cách lấy dữ liệu “chính thống” và mạnh mẽ nhất hiện nay!


💾 Quản trị dữ liệu thông minh tại: Hướng nghiệp Python – Automation

| BUỔI 6: ADVANCED SCRAPING TECHNIQUES — VƯỢT QUA CÁC RÀO CẢN DỮ LIỆU

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:02 | 54 lượt xem

Tiếp nối buổi học trước, hôm nay chúng ta sẽ giải quyết những bài toán thực tế khó hơn: Làm sao để lấy dữ liệu khi web yêu cầu đăng nhập? Làm sao để lật từng trang (pagination) để lấy toàn bộ dữ liệu? Và làm sao để trình duyệt không phát hiện ra chúng ta là một con robot?


1️⃣ Giả Lập Trình Duyệt Với User-Agent

Nhiều website sẽ chặn các request từ Python. Để vượt qua, chúng ta cần gửi kèm Headers để giả vờ rằng request này đến từ một trình duyệt Chrome hoặc Firefox thực thụ.

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
}
response = requests.get(url, headers=headers)

2️⃣ Duy Trì Trạng Thái Với Session & Cookies

Khi quét dữ liệu sau khi đăng nhập, bạn cần sử dụng requests.Session(). Nó giúp Python ghi nhớ Cookies giống như trình duyệt, giúp bạn không phải đăng nhập lại ở mỗi click.


3️⃣ Kỹ Thuật Phân Trang (Pagination)

Thay vì chỉ quét 1 trang, chúng ta sử dụng vòng lặp for hoặc while kết hợp với tham số URL để tự động nhảy sang trang 2, 3, 4 cho đến khi hết dữ liệu.

for p in range(1, 11):
    page_url = f"https://example.com/products?page={p}"
    # Thực hiện scraping ở đây

TỔNG KẾT BUỔI 6

Bạn đã nâng cấp kỹ năng Scraping lên một tầm cao mới. Việc hiểu về Header, Session và Pagination cho phép bạn khai thác dữ liệu từ các sàn thương mại điện tử hay các trang tin tức lớn một cách ổn định. Tiếp theo, ở buổi 7, chúng ta sẽ học cách lưu trữ đống dữ liệu này vào tệp tin chuyên nghiệp!


🔍 Chinh phục dữ liệu lớn tại: Hướng nghiệp Python – Automation

| BUỔI 5: WEB SCRAPING CƠ BẢN — THU THẬP DỮ LIỆU TỰ ĐỘNG VỚI BEAUTIFUL SOUP

Được viết bởi thanhdt vào ngày 24/03/2026 lúc 23:02 | 50 lượt xem

Nếu Selenium là robot điều khiển trình duyệt thì Beautiful Soup là một “chuyên gia bóc tách” dữ liệu. Nó không cần mở trình duyệt, giúp bạn lấy hàng nghìn dòng dữ liệu từ website chỉ trong vài giây với tốc độ cực nhanh.


1️⃣ Thư Viện Requests & Beautiful Soup

Quy trình rất đơn giản: Dùng requests để tải mã nguồn HTML về, sau đó dùng Beautiful Soup để “nấu” và lọc ra những thông tin bạn cần.

[!IMPORTANT]
🚀 Nội dung này thuộc Module 2 của: Khóa học Python Automation thực chiến


2️⃣ Cách Bóc Tách Văn Bản Và Liên Kết

Bạn có thể tìm kiếm phần tử theo thẻ (tag), ID hoặc Class CSS một cách cực kỳ linh hoạt.

import requests
from bs4 import BeautifulSoup

url = "https://example.com"
response = requests.get(url)

# Chuyển đổi HTML sang đối tượng Soup
soup = BeautifulSoup(response.text, 'html.parser')

# Lấy tiêu đề trang
title = soup.find('h1').text
print(f"Tiêu đề: {title}")

# Lấy tất cả các đường link
links = soup.find_all('a')
for link in links:
    print(link.get('href'))

3️⃣ Tại Sao Nên Dùng Beautiful Soup Thay Vì Selenium?

Beautiful Soup không cần khởi động trình duyệt nên tốn ít tài nguyên máy tính hơn và tốc độ nhanh hơn gấp 10-20 lần. Nó là lựa chọn số 1 khi bạn cần quét dữ liệu từ các trang tĩnh hoặc API công khai.


TỔNG KẾT BUỔI 5

Bạn đã nắm được kỹ thuật “cào” dữ liệu cơ bản nhất. Đây là bước đầu tiên để xây dựng các công cụ so sánh giá, theo dõi tin tức tự động. Ở buổi 6, chúng ta sẽ học các kỹ thuật nâng cao để đối phó với những website khó tính hơn!


🌐 Khám phá thế giới nội dung số tại: Hướng nghiệp Python – Automation