Trình duyệt không đầu hoạt động như thế nào?
Trình duyệt Agent không có scrapeless thực hiện các phiên trình duyệt điều khiển từ xa cho việc kết xuất JavaScript và tự động hóa web.
Một trình duyệt không đầu hoạt động bằng cách chạy một engine trình duyệt mà không hiển thị cửa sổ tương tác bình thường của nó. Nó vẫn tải tài liệu, thực thi các tập lệnh trang, duy trì trạng thái duyệt web, và tạo ra đầu ra đã được kết xuất. Phần mềm tự động hóa cung cấp các lệnh mà người ta sẽ kích hoạt thông qua giao diện. Hiểu rằng chuỗi thực thi giải thích tại sao một điều hướng thành công vẫn có thể trả về dữ liệu không hoàn chỉnh.
Chuyện gì xảy ra giữa một lệnh và một trang đã tải?
Một bộ điều khiển gửi lệnh điều hướng đến một trình duyệt đang chạy, và trình duyệt bắt đầu tải tài liệu mục tiêu trong một ngữ cảnh duyệt web. Bộ điều khiển có thể sống bên cạnh trình duyệt hoặc kết nối qua mạng. Trong cả hai sắp xếp, engine trình duyệt thực hiện công việc của trang. Quy trình điều khiển nhận được kết quả và sự kiện thay vì trở thành chính trình kết xuất.
Yêu cầu có thể gặp phải việc chuyển hướng, yêu cầu xác thực, hoặc đích đến khác với mong đợi. Ghi lại URL tài liệu cuối cùng trước khi trích xuất nội dung. Một trang có tiêu đề “Đăng nhập” có thể là một điều hướng thành công về mặt kỹ thuật nhưng lại không hữu ích cho một nhiệm vụ cần mô tả sản phẩm công khai. Hoàn thành mạng và hoàn thành nhiệm vụ trả lời các câu hỏi khác nhau.
Điều hướng cũng xảy ra trong trạng thái hiện có. Cookies, lưu trữ, quyền, và các tab mở có thể ảnh hưởng đến những gì trình duyệt nhận được. Một ngữ cảnh mới và một hồ sơ đã được sử dụng do đó là các điều kiện thí nghiệm khác nhau. Khi một quy trình làm việc hành xử khác nhau giữa các lần chạy, hãy so sánh những điều kiện đó trước khi đổ lỗi cho việc thiếu cửa sổ nhìn thấy được.
HTML trở thành một tài liệu tương tác như thế nào
Trình duyệt phân tích HTML thành một cây tài liệu, áp dụng các kiểu, và thực thi JavaScript có thể thay đổi cây đó. Mô hình nút DOM và sự kiện mô tả các cấu trúc mà các tập lệnh kiểm tra và sửa đổi. Tự động hóa có thể truy vấn những cấu trúc đó sau khi chúng tồn tại, bao gồm các phần tử không có mặt trong phản hồi ban đầu.
Hãy xem một trang danh mục giả thuyết mà tài liệu ban đầu của nó chứa một tiêu đề và một khu vực kết quả trống. Tập lệnh ứng dụng của nó yêu cầu dữ liệu sản phẩm, tạo ra các thẻ, và gắn các trình xử lý tương tác. Lưu phản hồi HTML đầu tiên sẽ giữ lại khu vực trống. Đọc DOM hiện tại sau khi các thẻ xuất hiện sẽ giữ lại trạng thái sau này của ứng dụng. Cả hai quan sát đều không phải là hư cấu; chúng mô tả những khoảnh khắc khác nhau.
CSS đóng góp vào bố cục, khả năng hiển thị, và thử nghiệm ảnh hưởng. Một phần tử có thể tồn tại trong cây trong khi bị ẩn hoặc bị che bởi một hộp thoại. Tự động hóa trình duyệt mà nhấp vào một phần tử cần nhiều hơn một chuỗi văn bản khớp. Trang phải ở trong một trạng thái mà tương tác đó có ý nghĩa như dự định và có thể đến được điều khiển chính xác.
JavaScript có thể tiếp tục thay đổi tài liệu sau các sự kiện tải ban đầu của nó. Bộ định thời, hành động của người dùng, và dữ liệu đến có thể tạo ra các cập nhật thêm. Hãy xem DOM như một đối tượng sống hơn là một báo cáo cuối cùng đến cùng với tài liệu. Quyết định trạng thái ứng dụng nào bạn cần trước khi chọn khi nào để đọc nó.
Chế độ không đầu thay đổi điều gì trong quy trình kết xuất
Chế độ không đầu thay đổi việc liệu cửa sổ trình duyệt có được hiển thị hay không; điều đó không có nghĩa là trình duyệt bỏ qua mọi kết xuất. Mặc dù chế độ Chrome Headless chia sẻ việc triển khai trình duyệt với Chrome có thể nhìn thấy. Điều đó quan trọng khi đánh giá các giải thích cũ mô tả thực thi không đầu như một engine tách biệt, giảm bớt vĩnh viễn.
Trình duyệt vẫn có thể tính toán bố cục và tạo ảnh chụp màn hình. Một ảnh chụp màn hình cần kích thước, phông chữ, và một trạng thái trang được định nghĩa ngay cả khi không ai nhìn thấy cửa sổ desktop. Một trích xuất văn bản có thể tránh xuất pixel, nhưng ứng dụng cơ bản vẫn có thể phụ thuộc vào các phép đo bố cục hoặc quyết định về khả năng hiển thị. Việc loại bỏ cửa sổ nhìn thấy không làm mất đi mọi chi phí kết xuất.
Môi trường thực thi vẫn có thể khác nhau. Phông chữ đã cài đặt, cài đặt viewport, hỗ trợ đồ họa, địa điểm, quyền, và phiên bản trình duyệt đều ảnh hưởng đến hành vi. So sánh các cấu hình tương đương khi điều tra sự khác biệt giữa không nhìn thấy và nhìn thấy. Nếu không, việc không khớp phông chữ hoặc thay đổi viewport có thể bị nhầm là do thiết lập không đầu.
Tại sao một trang đã tải có thể vẫn chưa sẵn sàng
Một cột mốc tải tài liệu không chứng minh rằng trang đã đạt được trạng thái kinh doanh mà nhiệm vụ của bạn yêu cầu. Một bảng kết quả có thể vẫn đang chờ phản hồi từ ứng dụng. Một nút có thể hiển thị trước khi ứng dụng hoàn tất việc gắn kết hành vi phía sau nó. Xác định sự sẵn sàng bằng chứng quan sát được từ nhiệm vụ thực tế.
Đối với ví dụ về danh mục, một điều kiện hữu ích có thể là một khu vực kết quả chứa các liên kết sản phẩm và không còn hiển thị chỉ báo đang tải của nó. Đối với việc thay đổi bộ lọc, điều kiện nên xác nhận bộ lọc đã chọn và kết quả tương ứng. Chỉ việc tìm bất kỳ thẻ sản phẩm nào có thể chấp nhận nội dung còn lại từ lựa chọn trước đó.
Một mạng lưới yên tĩnh cũng là một proxy không hoàn hảo cho sự sẵn sàng. Một số trang duy trì các kết nối liên tục; những trang khác hoàn tất việc tải tài nguyên trước khi cập nhật ứng dụng cần thiết. Chọn một điều kiện giới hạn xác định điều gì có nghĩa là sẵn sàng. Khi điều kiện không thể được thiết lập, hãy giữ lại các bằng chứng liên quan và dừng việc trích xuất thay vì lặng lẽ xử lý một bộ sưu tập trống như một kết quả hợp lệ.
Cách lệnh trở thành hành động trình duyệt
Các lệnh tự động hóa đề cập đến một phiên trình duyệt, xác định một mục tiêu, và yêu cầu một hoạt động như nhấp, gõ, hoặc đọc một thuộc tính. Mô hình điều khiển từ xa WebDriver chuẩn hóa các khái niệm tự động hóa trình duyệt bao gồm phiên, điều hướng và tương tác với phần tử. Các framework khác nhau có thể sử dụng các giao thức khác nhau trong khi biểu thị các tác vụ cấp cao tương tự.
Một bộ chọn xác định một phần tử tại một điểm cụ thể trong quy trình làm việc. Nó nên mô tả một mối quan hệ ổn định với nhiệm vụ, chẳng hạn như một đầu vào tìm kiếm có nhãn, hơn là một sự cố bố cục. Nếu một trang thay thế một vùng kết quả, tham chiếu phần tử trước đó có thể trở nên lỗi thời. Giải quyết phần tử dự định với tài liệu hiện tại khi quy trình làm việc đạt đến bước đó.
Các hành động có thể thay đổi nhiều hơn nội dung của trang. Một cú nhấp chuột có thể mở một tab khác, kích hoạt một tải xuống, hoặc di chuyển vào một khung nhúng. Bộ điều khiển phải theo dõi tài liệu mà nó đang hoạt động. Một bộ chọn chính xác trong tab sai vẫn nhắm mục tiêu đến công việc sai. Bao gồm các thay đổi ngữ cảnh duyệt web trong mô hình trạng thái của quy trình làm việc.
Những gì bạn có thể trích xuất từ trình duyệt đang chạy
Một trình duyệt đang chạy có thể cung cấp nội dung DOM hiện tại và các tài sản đã được kết xuất, nhưng mỗi đầu ra trả lời một câu hỏi khác nhau. Văn bản và thuộc tính hữu ích cho việc trích xuất có cấu trúc. Ảnh chụp màn hình cho thấy trình bày có thể nhìn thấy. Một tài liệu đã được tuần tự hóa ghi lại đánh dấu tại một thời điểm. Không có cái nào trong số này một mình chứng minh rằng tất cả các hồ sơ liên quan đã được phát hiện.
| Đầu ra | Bằng chứng hữu ích | Giới hạn quan trọng |
|---|---|---|
| Trường DOM | Tên, liên kết và giá trị hiển thị | Chỉ có trạng thái tài liệu đã truy vấn được đại diện |
| Ảnh chụp màn hình | Bố cục và tin nhắn có thể nhìn thấy | Pixel không phải là một bộ hồ sơ có cấu trúc |
| Sự kiện phiên | Chuỗi điều hướng và hành động | Một sự kiện không thiết lập độ chính xác kinh doanh |
Các danh sách ảo cần được chú ý đặc biệt. Một danh sách dài có thể chỉ giữ lại một tập con có thể nhìn thấy trong DOM. Việc đếm các thẻ hiện tại do đó có thể thiếu sót bộ dữ liệu của ứng dụng. Thiết lập một quy tắc phát hiện, liên kết hồ sơ với các định danh ổn định, và phân biệt quan sát một phần với một bộ sưu tập hoàn chỉnh. Đây là những quyết định trích xuất, không phải khả năng mà chế độ không đầu cung cấp tự động.
Nơi các Phiên Từ Xa Vừa Khớp Vào Vòng Đời
Một trình duyệt từ xa chuyển việc thực thi trình duyệt đến một máy khác trong khi để lại logic điều khiển trong ứng dụng của bạn. Trình duyệt Đại lý không có rác cung cấp lớp thực thi đó. Cấu hình phiên Trình duyệt Đại lý giải thích các cài đặt kết nối và thời gian phiên; các quyết định về sẵn sàng và trích xuất vẫn là trách nhiệm của bạn.
Kế hoạch kết thúc phiên trước khi bắt đầu công việc. Xuất khẩu các tài sản cần thiết, ghi lại xem điều kiện dự định có được đạt đến hay không, và đóng các tài nguyên theo vòng đời của khách hàng và dịch vụ. Ngắt kết nối một bộ điều khiển và chấm dứt một trình duyệt không phải lúc nào cũng tương đương. Dữ liệu bền vững cũng cần một chính sách rõ ràng: chỉ tái sử dụng trạng thái mà nhiệm vụ tiếp theo thực sự cần.
Khi so sánh các lựa chọn triển khai, đánh giá thời gian phiên và việc sử dụng tài nguyên với giá cả Scrapeless hiện tại.Một thử nghiệm nhỏ hữu ích đo lường sự hoàn thành công việc đại diện của bạn. Cuộc thảo luận liên quan đến cạo trình duyệt không đầu kết nối việc thực thi trình duyệt với thiết kế trích xuất mà không thay đổi vòng đời cơ bản.
Kết luận
Một trình duyệt không đầu hoạt động thông qua cùng một tài liệu, kịch bản và các hoạt động kết xuất thiết yếu mà một trang web tương tác cần. Tự động hóa đáng tin cậy thêm các kiểm tra trạng thái trang rõ ràng và xác minh đầu ra xung quanh các hoạt động đó. Theo dõi một quy trình làm việc được ủy quyền từ điều hướng đến dọn dẹp, và làm cho mỗi chuyển tiếp trở nên có thể quan sát trước khi mở rộng nó.
Đưa Quy trình Làm việc Trình duyệt của Bạn vào Thực tiễn
Sử dụng Trình duyệt Đại lý để khám phá một quy trình làm việc kết xuất có giới hạn với các kiểm tra sẵn sàng rõ ràng.
Đăng ký hôm nay và nhận $5 tín dụng miễn phí — không cần thẻ tín dụng.
Nhận Tín dụng $5 của bạn →Câu hỏi thường gặp
Một trình duyệt không đầu có thực thi JavaScript không?
Một trình duyệt không đầu với động cơ JavaScript thực thi các kịch bản trang trừ khi việc thực thi bị vô hiệu hóa hoặc bị hạn chế. Các kịch bản có thể lấy dữ liệu và sửa đổi DOM sau khi bắt đầu điều hướng, vì vậy thời gian trích xuất ảnh hưởng đến kết quả.
Các trình duyệt không đầu có thể tạo ảnh chụp màn hình không?
Các trình duyệt không đầu có thể tạo ảnh chụp màn hình khi việc triển khai của chúng hỗ trợ việc chụp ảnh chụp màn hình. Một cửa sổ máy tính để bàn có thể nhìn thấy là không cần thiết, nhưng kích thước viewport, phông chữ, trạng thái trang, và khu vực chụp đã chọn vẫn ảnh hưởng đến tài sản.
Tại sao trang trích xuất lại trống?
Một trích xuất trống có thể có nghĩa là nội dung liên quan chưa xuất hiện, bộ chọn nhắm đến khu vực sai, hoặc trang đạt đến một điểm đến không mong muốn. Kiểm tra URL hiện tại và trạng thái tài liệu trước khi coi kết quả trống là một bộ dữ liệu hợp lệ.
Việc chạy từ xa có thay đổi độ sẵn sàng của trang không?
Thực thi từ xa không loại bỏ các yêu cầu về độ sẵn sàng của ứng dụng. Khoảng cách mạng và lịch trình dịch vụ có thể ảnh hưởng đến thời gian, nhưng bộ điều khiển của bạn vẫn cần một điều kiện xác nhận trạng thái trang dự định trước khi nó đọc hoặc hành động.