PowerShell:
Phân Tích Cú Pháp HTML

Cách thực hiện:

Hãy lấy một số dữ liệu từ một trang web. Chúng ta sẽ sử dụng Invoke-WebRequest và sau đó lọc ra những gì chúng ta cần.

# Tải nội dung trang
$response = Invoke-WebRequest -Uri "http://example.com"

# Phân tích cú pháp nội dung HTML
$parsedHtml = $response.ParsedHtml

# Trích xuất dữ liệu
# Giả sử chúng ta muốn tất cả các văn bản hyperlink
$links = $parsedHtml.getElementsByTagName('a') | ForEach-Object { $_.innerText }
$links

Kết quả mẫu:

Trang Chính
Về Chúng Tôi
Dịch Vụ
Liên Hệ

Sâu hơn

Trong quá khứ, phân tích cú pháp HTML trong PowerShell có thể khá cồng kềnh. Bạn có lựa chọn sử dụng regex (nổi tiếng là có vấn đề đối với HTML), đối tượng COM với Internet Explorer, hoặc thư viện bên thứ ba. Nay, Cmdlet Invoke-WebRequest của PowerShell đơn giản hóa quá trình này, tích hợp với engine của Internet Explorer để phân tích cú pháp HTML - mặc dù nó hơi chậm và cồng kềnh.

Có các lựa chọn khác như thư viện HtmlAgilityPack, phù hợp hơn và được tinh chỉnh tốt hơn cho việc phân tích cú pháp HTML. Nó yêu cầu thiết lập thêm nhưng đem lại sự linh hoạt và hiệu suất.

Về việc triển khai, lưu ý rằng phương pháp của PowerShell không luôn chính xác đối với nội dung động được tải bởi JavaScript. Để xử lý nội dung động, bạn có thể cần đến các công cụ tự động hóa trình duyệt như Selenium.

Xem Thêm