Ngiêm cấm sử đụng PROXY và VPS vào mục đích trái pháp luật bạn sẽ phải chịu toàn bộ trách nhiệm trước pháp luật khi sử dụng dịch vụ của chúng tôi tks!
ScreenshotOne chụp trang có kiểm soát: viewport và so ảnh

ScreenshotOne chụp trang có kiểm soát: viewport, chờ và so ảnh

Chuyên viên Kỹ thuật ProxyVN 02-18-2026 Đang tính... phút đọc

ScreenshotOne chụp trang có kiểm soát là cách dùng API chụp màn hình của ScreenshotOne với tham số cố định, để hai lần chụp cùng một trang cho ra hai ảnh so được với nhau. Thiếu kiểm soát, ảnh có thể chụp trước khi giá tải xong, dính biểu ngữ cookie, hoặc lệch vì hiệu ứng chuyển động. Khi đó so ảnh giữa hai ngày chỉ cho ra nhiễu. ProxyVN đọc tài liệu tham số của ScreenshotOne ngày 03/11/2026, gọi API thật với khóa giả, rồi dựng một ma trận ba viewport nhân bốn điều kiện chờ trên trang fixture bằng Edge headless cục bộ. Bài ghi rõ phần nào là tham số của ScreenshotOne, phần nào là mô phỏng.

ScreenshotOne chụp trang có kiểm soát: mục tiêu và phạm vi không lặp

Phần này chốt bài toán, đầu ra và giới hạn.

Bài toán

Một nhóm cần lưu ảnh chụp trang giá của đối thủ mỗi ngày để theo dõi thay đổi giao diện và giá hiển thị. Họ dùng ScreenshotOne. Ảnh ngày nào cũng khác ngày trước, kể cả khi trang không đổi gì. Có ngày ảnh chụp chỉ thấy chữ đang tải giá. Nhóm cần biết tham số nào làm ảnh ổn định và cách đo sai khác cho đúng.

Đầu ra nghiệm thu

Đầu ra gồm ma trận viewport nhân điều kiện chờ cho biết ô nào chụp được nội dung đầy đủ, và phép so sai khác giữa hai ảnh chụp cùng tham số, trước và sau khi loại các nguồn nhiễu. Kèm theo là manifest ghi URL, viewport, điều kiện chờ, thời điểm và lỗi của mỗi lần chụp.

Không hứa proxy đổi được nội dung

ScreenshotOne có tham số chọn quốc gia của IP chụp. Bài không khẳng định đổi IP sẽ đổi ngôn ngữ hay nội dung mọi trang. Mỗi website tự quyết hiển thị theo tín hiệu nào. Tài liệu của ScreenshotOne cũng khuyên kết hợp quốc gia IP với ngôn ngữ và múi giờ.

Ranh giới với trích nội dung và lưu WARC

Trích nội dung lấy văn bản và dữ liệu có cấu trúc. Lưu WARC giữ nguyên các request và response để phát lại. Chụp màn hình giữ hình ảnh như người dùng thấy. Ba việc có mục đích khác nhau. Bài chỉ bàn chụp màn hình.

Giới hạn của lab

Lab không có tài khoản ScreenshotOne. Gọi API thật với khóa giả nhận HTTP 400, JSON báo access_key không hợp lệ. Ma trận chụp chạy bằng Playwright với Edge headless trên trang fixture cục bộ, dùng các điều kiện chờ tương ứng với tham số của ScreenshotOne. Con số thời gian và sai khác là của trình duyệt cục bộ, không phải của dịch vụ.

Ảnh chụp dùng làm gì

Ảnh chụp trang có ba công dụng phổ biến. Thứ nhất là theo dõi thay đổi giao diện của trang đối thủ. Thứ hai là kiểm thử hồi quy giao diện của chính trang mình. Thứ ba là lưu bằng chứng trang hiển thị gì vào một thời điểm. Cả ba đều cần ảnh so được với nhau theo thời gian. Ảnh chụp ngẫu nhiên chỉ hữu ích cho người xem bằng mắt.

Ai nên đọc

Người dùng API chụp màn hình để theo dõi trang đối thủ, kiểm thử giao diện hay lưu bằng chứng. Người đã thử so ảnh tự động và gặp quá nhiều cảnh báo giả. Người cần chọn giữa chờ theo sự kiện, chờ theo phần tử và chờ cố định.

Thiết kế screenshot API với viewport và điều kiện chụp ổn định cho ScreenshotOne chụp trang có kiểm soát

Phần này tóm tắt các tham số liên quan trong tài liệu.

Endpoint và khóa

Theo trang Options trong tài liệu ScreenshotOne, request có dạng GET tới api.screenshotone.com/take với tham số url và access_key. Tài liệu có thêm tùy chọn chữ ký cho request ký số. Khóa nằm trên URL, nên xuất hiện ở mọi chỗ ghi URL.

Chọn viewport theo người xem

Viewport nên khớp với thiết bị mà người dùng thật của trang đích hay dùng. Trang bán hàng ở Việt Nam có phần lớn lượt xem từ điện thoại, nên viewport điện thoại thường quan trọng hơn màn hình lớn. Chụp nhiều viewport tốn nhiều request, chỉ nên chụp những viewport thật sự cần theo dõi.

Viewport

viewport_width và viewport_height đặt kích thước cửa sổ trình duyệt theo điểm ảnh. Tài liệu ghi viewport_width mặc định 1280. Nếu đặt viewport_device, viewport_width ghi đè lên giá trị của thiết bị. Tài liệu còn có device_scale_factor, viewport_mobile, viewport_has_touch.

wait_until

wait_until chờ một sự kiện trước khi chụp, mặc định là load. Giá trị cho phép gồm load, domcontentloaded, networkidle0 nghĩa là không còn kết nối mạng nào trong ít nhất 500 mili giây, networkidle2 nghĩa là không quá hai kết nối trong ít nhất 500 mili giây. Có thể truyền nhiều giá trị.

wait_for_selector

wait_for_selector chờ phần tử xuất hiện trong DOM, không nhất thiết hiển thị. Tài liệu ghi API chờ trong phạm vi timeout của request, và thời gian tải trang, delay, chụp ảnh cùng tính vào một timeout.

delay

delay chờ thêm một số giây trước khi chụp, mặc định 0. Tài liệu gợi ý dùng khi wait_until không đủ. Đây là chờ cố định, không phụ thuộc vào trang.

timeout

timeout mặc định 60 giây, tối đa 90 giây cho request đồng bộ. Hết timeout thì request bị hủy. Request bất đồng bộ có giới hạn 600 giây.

Chặn quảng cáo và trình theo dõi

block_ads và block_trackers chặn request tới mạng quảng cáo và dịch vụ theo dõi. Ngoài việc làm ảnh sạch hơn, chúng còn giúp networkidle đạt nhanh hơn, vì bớt kết nối nền. Lab không có quảng cáo trong fixture nên không đo được tác dụng.

Tham số giảm nhiễu

Tài liệu có block_cookie_banners để chặn biểu ngữ cookie và thông báo quyền riêng tư, block_ads, block_trackers, hide_selectors để ẩn phần tử theo bộ chọn, styles để chèn CSS, reduce_motion và reduced_motion liên quan tới hiệu ứng chuyển động. Tài liệu ghi rõ reduced_motion chỉ là tín hiệu ưu tiên, website có thể bỏ qua, không tự dừng hoạt ảnh.

Gọi thật với khóa giả

Lab gọi take với access_key bằng FAKEKEY123 và url example.com. Phản hồi là HTTP 400, application/json, với is_successful false, error_code access_key_invalid. Lỗi dạng JSON trong khi thành công trả ảnh, nên mã phải kiểm Content-Type trước khi ghi tệp ảnh.

Khóa viewport, URL fixture và kiểu output ảnh trong ScreenshotOne chụp trang có kiểm soát

Phần này mô tả trang fixture và cách chụp.

Trang fixture

Máy chủ cục bộ ở cổng 9411 phục vụ một trang giá có năm nguồn thay đổi. Ô giá tải qua fetch sau 1,2 giây. Một dải chữ chạy bằng hoạt ảnh CSS lặp mỗi 3 giây. Một biểu ngữ cookie cố định ở đáy. Một dòng ghi thời điểm tải trang. Bốn thẻ nội dung xếp theo bề rộng màn hình.

Mỗi nguồn nhiễu một kiểu

Ô giá là nội dung tải chậm, cần chờ đúng. Dải chữ chạy là chuyển động liên tục, mỗi lần chụp ở vị trí khác. Biểu ngữ cookie che một phần trang. Dòng thời điểm đổi mỗi lần tải. Thẻ nội dung đổi bố cục theo viewport. Trang thật thường có đủ năm loại này.

Fixture thay cho trang thật

Trang thật thay đổi theo ngày, có quảng cáo khác nhau mỗi lần tải, có thời gian phản hồi dao động. Fixture cho phép biết chính xác nguồn nhiễu nào đang có và tắt từng nguồn một. Nhờ vậy, mỗi con số sai khác trong lab giải thích được bằng một nguyên nhân cụ thể.

Ba viewport

Lab chụp ở 375 nhân 812 tượng trưng điện thoại, 1280 nhân 800 là bề rộng mặc định của ScreenshotOne, và 1920 nhân 1080 cho màn hình lớn. Kiểu ảnh là PNG để so pixel không bị nén mất dữ liệu.

Bốn điều kiện chờ

Bốn điều kiện chờ

Bốn điều kiện chờ

load tương ứng wait_until mặc định. networkidle của Playwright tương ứng networkidle0, chờ không còn kết nối trong 500 mili giây. selector chờ phần tử class price-ready tồn tại, tương ứng wait_for_selector. delay2 chờ load rồi thêm 2 giây, tương ứng delay bằng 2.

Hàm chụp

def shot(b, vw, vh, wait, tag, freeze=False, timeout=10):
    ctx = b.new_context(viewport={"width": vw, "height": vh}); pg = ctx.new_page()
    pg.goto(URL, wait_until="networkidle" if wait == "networkidle" else "load",
            timeout=timeout * 1000)
    if wait == "selector": pg.wait_for_selector(".price-ready", state="attached")
    if wait == "delay2": pg.wait_for_timeout(2000)
    if freeze: pg.add_style_tag(content=FREEZE)
    pg.screenshot(path=f"anh/{tag}.png")

Mỗi lần chụp dùng một ngữ cảnh trình duyệt mới, tránh bộ nhớ đệm từ lần trước.

Một ngữ cảnh mỗi lần chụp

Mỗi lần chụp tạo ngữ cảnh trình duyệt mới, không dùng lại cookie hay bộ nhớ đệm. Nhờ vậy, biểu ngữ cookie luôn hiện như với khách mới, và kết quả không phụ thuộc lần chụp trước. Dịch vụ chụp ảnh thường cũng tạo phiên mới cho mỗi request, trừ khi bật tùy chọn cache.

Ghi manifest

Mỗi lần chụp ghi một dòng manifest: tag, URL, viewport, điều kiện chờ, có đóng băng nhiễu không, thời điểm, thời gian chụp, nội dung ô giá đọc được, 12 ký tự đầu của SHA-256 ảnh, và lỗi nếu có. Sau lab, manifest có 17 dòng.

Chọn wait condition để tránh chụp trước khi nội dung ổn định với ScreenshotOne chụp trang có kiểm soát

Phần này đọc ma trận viewport nhân điều kiện chờ.

Ma trận

Ma trận viewport và chờ

Ma trận viewport và chờ

Bảng: Ma trận

Viewport

load

networkidle

selector

delay 2 giây

375 x 812

chưa có giá, 243 ms

có giá, 1789 ms

có giá, 1414 ms

có giá, 2090 ms

1280 x 800

chưa có giá, 139 ms

có giá, 1813 ms

có giá, 1432 ms

có giá, 2115 ms

1920 x 1080

chưa có giá, 121 ms

có giá, 1810 ms

có giá, 1427 ms

có giá, 2128 ms

load chụp quá sớm

Ở cả ba viewport, chờ load cho ảnh với chữ đang tải giá. Sự kiện load xảy ra khi HTML và tài nguyên tĩnh tải xong, trước khi fetch giá trả về. Đây là giá trị mặc định của ScreenshotOne. Trang nào tải dữ liệu bằng JavaScript sau load đều gặp vấn đề này.

selector nhanh nhất trong số chụp đủ

Chờ phần tử price-ready cho ảnh có giá sau khoảng 1,42 giây, nhanh nhất trong ba cách chụp được giá. Nó dừng ngay khi giá xuất hiện, không chờ thêm. Điều kiện chờ chính là thứ cần chụp, nên không sớm cũng không thừa.

networkidle chậm hơn một chút

Chờ mạng nhàn rỗi cho ảnh có giá sau khoảng 1,8 giây. Chậm hơn selector khoảng 0,4 giây, vì sau khi fetch xong còn phải chờ thêm 500 mili giây không có kết nối. Với trang có kết nối nền liên tục như theo dõi hay trò chuyện trực tuyến, networkidle0 có thể không bao giờ đạt.

delay chắc nhưng phí

Chờ cố định 2 giây cho ảnh có giá ở cả ba viewport, mất khoảng 2,1 giây. Đủ vì giá về sau 1,2 giây. Nếu một ngày máy chủ chậm và giá về sau 2,5 giây, delay 2 giây sẽ chụp ảnh thiếu giá mà không báo gì.

Chờ phần tử nào

Phần tử price-ready chỉ được gắn class sau khi giá về. Trang thật hiếm khi có class rõ ràng như vậy. Có thể chờ phần tử chứa giá có nội dung không rỗng, hoặc chờ biểu tượng đang tải biến mất. Yêu cầu duy nhất là phần tử đó không tồn tại trước khi dữ liệu về.

Viewport không đổi điều kiện chờ

Ba viewport cho cùng kết quả về việc có giá hay không. Thời gian chênh nhau không đáng kể. Viewport đổi bố cục, không đổi thời điểm dữ liệu về. Chọn điều kiện chờ một lần cho trang, áp dụng cho mọi viewport.

Kết hợp nhiều điều kiện

ScreenshotOne cho truyền nhiều giá trị wait_until và kết hợp với wait_for_selector, delay. Một tổ hợp hợp lý là networkidle2 cộng wait_for_selector: chờ phần lớn kết nối xong và chờ phần tử dữ liệu. delay chỉ thêm khi phần tử xuất hiện trước khi hình ảnh trong nó tải xong.

Timeout quá ngắn

Lab chụp với networkidle và timeout 1 giây. Kết quả là TimeoutError, không có ảnh. Trên ScreenshotOne, timeout tối thiểu là chuyện cấu hình, nhưng nguyên tắc giống nhau: timeout phải lớn hơn thời gian trang cần để đạt điều kiện chờ, cộng biên an toàn.

So ảnh giữa hai lần gọi với cùng tham số trong ScreenshotOne chụp trang có kiểm soát

Phần này đo sai khác giữa các ảnh.

Hai lần chụp, chưa xử lý nhiễu

Lab chụp hai lần ở 1280 nhân 800, chờ selector, cách nhau khoảng 1,1 giây. Hai ảnh khác nhau 3.576 điểm ảnh, tức 0,35 phần trăm. SHA-256 khác nhau. Trang không đổi gì về nội dung, nhưng dải chữ chạy ở vị trí khác và dòng thời điểm đã đổi.

Hai lần chụp, đã đóng băng nhiễu

Đóng băng nhiễu

Đóng băng nhiễu

Lab chèn CSS tắt mọi hoạt ảnh và chuyển tiếp, ẩn biểu ngữ cookie, ẩn dòng thời điểm. Chụp lại hai lần cùng tham số. Hai ảnh khác nhau 0 điểm ảnh, SHA-256 giống hệt.

Đây là kết quả quan trọng nhất: khi loại các nguồn nhiễu đã biết, hai lần chụp cho ảnh trùng từng điểm ảnh. Mọi khác biệt sau đó mới thật sự là thay đổi của trang.

Tương ứng với tham số ScreenshotOne

Việc chèn CSS tương ứng tham số styles. Ẩn phần tử tương ứng hide_selectors. Ẩn biểu ngữ cookie tương ứng block_cookie_banners hoặc hide_selectors. Lab không gửi các tham số này tới ScreenshotOne thật, chỉ dùng cơ chế tương đương trong Playwright.

load so với selector

So ảnh chờ load với ảnh chờ selector ở cùng viewport: khác 7.170 điểm ảnh, 0,7 phần trăm. Phần lớn khác biệt nằm ở ô giá, nơi một ảnh có chữ đang tải và ảnh kia có giá. Sai khác này có ý nghĩa thật, nhưng đến từ điều kiện chờ chứ không từ trang thay đổi.

Ngưỡng sai khác

Không có ngưỡng chung cho mọi trang. Với trang đã đóng băng nhiễu, ngưỡng 0 là hợp lý. Với trang còn nhiễu khó loại như quảng cáo xoay vòng, phải đặt ngưỡng lớn hơn, và chấp nhận bỏ sót thay đổi nhỏ. Lab cho thấy 0,35 phần trăm có thể chỉ là nhiễu, nên đừng đặt ngưỡng nhỏ hơn mức nhiễu đo được.

Font và hình ảnh tải chậm

Ngoài dữ liệu, font chữ web và hình ảnh cũng tải sau. Ảnh chụp trước khi font về có thể dùng font hệ thống, làm chữ lệch vài điểm ảnh. Fixture không dùng font web nên không gặp. Với trang thật, chờ networkidle thường đủ cho font, wait_for_selector thì không bảo đảm.

So theo vùng

Thay vì so cả ảnh, có thể so riêng vùng quan trọng như ô giá. ScreenshotOne có tham số selector để chụp một phần tử, và tham số clip để cắt vùng. Chụp riêng ô giá loại được mọi nhiễu ở phần khác của trang. Lab chưa thử chụp theo phần tử.

Nhiễu từ phía máy chụp

Ngoài nhiễu từ trang, còn nhiễu từ máy chụp: phiên bản trình duyệt, cách vẽ chữ, độ phân giải. Hai lần chụp trên cùng máy với cùng phiên bản thì không có nhiễu này, như lab. Hai lần chụp cách nhau vài tuần, dịch vụ có thể đã nâng cấp trình duyệt. Khi sai khác tăng đều trên mọi trang cùng lúc, nên nghĩ tới nguyên nhân này.

Hash nhanh, pixel chính xác

SHA-256 giống nhau là cách kiểm nhanh nhất hai ảnh trùng từng điểm ảnh. Khác nhau thì phải so pixel để biết khác bao nhiêu và ở đâu. Manifest lưu hash để lọc nhanh những ngày trang không đổi, chỉ so pixel khi hash khác.

Lưu manifest URL, viewport, thời điểm và lỗi chụp với ScreenshotOne chụp trang có kiểm soát

Phần này mô tả manifest và cách dùng.

Trường trong manifest

Mỗi dòng có tag, url, viewport, wait, freeze, time, ms, gia, sha256, error. Ba trường đầu cùng wait và freeze mô tả đầy đủ tham số chụp. time và ms cho biết khi nào và mất bao lâu. gia là bằng chứng nội dung chính đã có. sha256 cho so sánh nhanh. error ghi lý do khi không có ảnh.

Ghi cả lần chụp lỗi

Lần chụp timeout 1 giây có dòng manifest với error là TimeoutError và sha256 rỗng. Không bỏ dòng lỗi. Nhìn manifest theo thời gian thấy được ngày nào chụp lỗi nhiều, thường là dấu hiệu trang chậm hoặc dịch vụ có vấn đề.

Manifest giúp truy ngược

Khi phát hiện ảnh một ngày có giá khác thường, manifest cho biết ảnh đó chụp lúc nào, viewport nào, chờ điều kiện gì và đọc được giá bao nhiêu. Nếu giá đọc được khớp với ảnh, trang thật sự đổi. Nếu không khớp, có thể ảnh chụp lệch thời điểm hoặc trang có hai phiên bản hiển thị.

Kiểm nội dung trước khi lưu ảnh

Trường gia đọc văn bản của ô giá ngay trước khi chụp. Nếu văn bản là đang tải giá, ảnh không đạt yêu cầu dù chụp thành công. Với API thật, cách tương đương là chờ phần tử chỉ xuất hiện khi dữ liệu đã có, như lab làm với price-ready.

Phân biệt lỗi dịch vụ và lỗi trang

Phản hồi lỗi của ScreenshotOne là JSON với error_code. Mã nên ghi error_code vào trường error của manifest. Lỗi khóa, lỗi timeout và lỗi trang không tải được là ba nhóm khác nhau, cần ba cách xử lý khác nhau.

Chụp lại khi lỗi

Lần chụp lỗi vì timeout có thể chụp lại ngay, với timeout lớn hơn. Lần chụp lỗi vì khóa thì chụp lại vô ích. Lần chụp đủ ảnh mà thiếu nội dung chính thì nên chụp lại với điều kiện chờ khác. Mã quyết định chụp lại dựa vào trường error và trường nội dung trong manifest.

Đặt tên tệp ảnh

Tên tệp nên gồm ngày, mã trang và viewport, không chỉ số thứ tự. Lab dùng tag như 1280_selector. Môi trường thật nên thêm ngày để không ghi đè ảnh ngày trước.

Lưu ảnh gốc hay ảnh nén

Lab lưu PNG để so pixel chính xác. PNG nặng hơn JPEG nhiều. Nếu chỉ cần xem bằng mắt, JPEG đủ. Nếu cần so tự động, PNG tránh được sai khác do nén. Có thể lưu PNG để so rồi chuyển sang JPEG để lưu trữ lâu dài.

Lưu tham số đầy đủ

Manifest nên lưu đúng chuỗi tham số đã gửi, đã che access_key. Khi ảnh hai ngày khác nhau, việc đầu tiên là so tham số. Nếu tham số khác, khác biệt có thể do cấu hình, không do trang.

Đầu ra nghiệm thu: ma trận viewport chờ tải và ảnh fixture so sánh sai khác của ScreenshotOne chụp trang có kiểm soát

Phần cuối gom kết quả thành bộ bàn giao.

Bộ bàn giao

Bộ bàn giao gồm tệp lab.py với trang fixture, hàm chụp và hàm so; thư mục anh với 16 ảnh PNG; tệp manifest.json với 17 dòng; phản hồi 400 thật từ ScreenshotOne. Người nhận chạy lại lab.py, phải thấy load thiếu giá ở mọi viewport, hai ảnh đã đóng băng nhiễu trùng 0 điểm ảnh.

Đo nhiễu trước khi dùng thật

Trước khi đưa một trang vào theo dõi hằng ngày, chụp nó hai lần liên tiếp với cấu hình dự định, đo sai khác. Nếu khác 0, tìm nguồn nhiễu và loại bỏ, hoặc ghi lại mức nhiễu làm ngưỡng. Bước này mất vài phút nhưng tiết kiệm nhiều cảnh báo giả về sau.

Request mẫu cho ScreenshotOne

https://api.screenshotone.com/take?url=<trang>&access_key=<khóa>
  &viewport_width=1280&viewport_height=800&format=png
  &wait_for_selector=.price-ready&block_cookie_banners=true
  &hide_selectors=%23dongho&styles=<css tắt animation>&timeout=30

Request này gộp các kết luận của lab. Lab chưa gửi nó tới ScreenshotOne vì không có khóa.

Tiêu chí đạt

Mỗi ảnh có nội dung chính, xác nhận qua điều kiện chờ. Hai lần chụp cùng tham số trên trang không đổi cho sai khác 0 sau khi loại nhiễu. Mỗi lần chụp, kể cả lỗi, có một dòng manifest.

Khi nào cần proxy với ScreenshotOne chụp trang có kiểm soát

ScreenshotOne có tham số ip_country_code dùng proxy trung tâm dữ liệu của họ, và tham số proxy để dùng proxy riêng. Tài liệu ghi proxy ghi đè ip_country_code. Tài liệu cũng khuyên kết hợp quốc gia IP với ngôn ngữ và múi giờ nếu website chọn nội dung theo vùng.

Khi cần chụp trang được phép thu thập từ góc nhìn người dùng Việt Nam, có thể truyền proxy riêng có IP Việt Nam. Anh em có thể mua proxy tĩnh Việt Nam tại trang chủ ProxyVN cho mục đích đó. Proxy không làm ảnh ổn định hơn và không thay điều kiện chờ. Vai trò hợp lệ của proxy được giải thích ở bài Web Scraping proxy là gì.

Vùng ảnh hưởng giá hiển thị

Một số trang hiển thị giá khác nhau theo vùng, hoặc ẩn sản phẩm với khách nước ngoài. Ảnh chụp từ máy chủ ở nước ngoài có thể khác ảnh người dùng Việt Nam thấy. Nếu mục tiêu là theo dõi đúng trang người Việt thấy, cần IP Việt Nam, ngôn ngữ vi và múi giờ Asia/Ho_Chi_Minh cùng lúc.

Proxy trên URL request

Tham số proxy của ScreenshotOne nằm trên URL request, cùng chỗ với access_key. Chuỗi proxy có user và mật khẩu sẽ xuất hiện ở mọi chỗ ghi URL. Nên dùng request ký số hoặc gửi qua phương thức tài liệu hỗ trợ để tránh lộ, và che chuỗi này trong manifest. Cách viết chuỗi proxy đúng định dạng có trong bài định dạng proxy.

Chụp toàn trang

full_page chụp cả chiều dài trang, không chỉ phần trong viewport. Ảnh toàn trang dài, thay đổi ở bất kỳ đâu đều làm sai khác tăng. Với theo dõi giá, chụp viewport đầu trang hoặc chụp theo phần tử thường hữu ích hơn. Với lưu bằng chứng, toàn trang đầy đủ hơn.

Những gì lab chưa thử

Lab chưa gửi request chụp nào tới ScreenshotOne thật, chưa thử block_cookie_banners, hide_selectors, styles trên dịch vụ. Lab chưa thử full_page, chụp theo phần tử, cache, chế độ bất đồng bộ. Thời gian trong ma trận là của Edge cục bộ, dịch vụ thật sẽ khác.

Checklist ScreenshotOne chụp trang có kiểm soát

Checklist

Checklist

  • Cố định viewport_width, viewport_height và format.
  • Không dùng wait_until mặc định cho trang tải dữ liệu bằng JavaScript.
  • Ưu tiên wait_for_selector với phần tử chỉ có khi dữ liệu đủ.
  • delay chỉ là phương án dự phòng.
  • Chặn cookie, ẩn phần tử thay đổi theo thời gian, tắt hoạt ảnh.
  • Đo nhiễu bằng hai lần chụp liên tiếp trước khi đặt ngưỡng.
  • Ghi manifest cho mọi lần chụp, kể cả lỗi.
  • Che access_key và chuỗi proxy trong log.

Câu hỏi thường gặp về ScreenshotOne chụp trang có kiểm soát

Vì sao ảnh chụp thiếu giá?

Vì wait_until mặc định là load, xảy ra trước khi dữ liệu tải bằng JavaScript về. Lab thấy load thiếu giá ở cả ba viewport.

Nên dùng điều kiện chờ nào?

wait_for_selector với phần tử chỉ xuất hiện khi dữ liệu đủ. Trong lab, cách này nhanh nhất trong các cách chụp đủ giá.

Vì sao hai ảnh cùng tham số vẫn khác nhau?

Do hoạt ảnh, dòng thời gian, biểu ngữ cookie. Lab đo 0,35 phần trăm khác biệt, về 0 sau khi loại các nguồn này.

Viewport có ảnh hưởng thời điểm chụp không?

Không đáng kể trong lab. Viewport đổi bố cục, không đổi lúc dữ liệu về.

Khóa sai thì API trả gì?

Lab gọi thật nhận HTTP 400 với JSON error_code access_key_invalid.

Có cần proxy để chụp ảnh không?

Không bắt buộc. Chỉ khi cần góc nhìn theo vùng, và nên kết hợp với ngôn ngữ, múi giờ.

ScreenshotOne chụp trang có kiểm soát và những điều cần nhớ

ScreenshotOne chụp trang có kiểm soát nghĩa là cố định viewport, chờ đúng điều kiện và loại nhiễu trước khi so ảnh. Lab trên trang fixture cho thấy chờ load chụp thiếu giá, chờ phần tử chụp đủ và nhanh nhất, hai ảnh chưa xử lý nhiễu lệch 0,35 phần trăm. Sau khi tắt hoạt ảnh, ẩn cookie và dòng giờ, hai ảnh trùng từng điểm ảnh. Ghi manifest cho mọi lần chụp để so được theo thời gian. Cần IP tĩnh Việt Nam cho góc nhìn trong nước khi dùng ScreenshotOne chụp trang có kiểm soát, liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam.

TIN TỨC LIÊN QUAN