Khung web scraping là gì? Hướng dẫn thiết thực

Khung web scraping là gì?

Trình duyệt Scrapeless Agent cung cấp các phiên duyệt được quản lý mà một khung web scraping có thể sử dụng để thu thập các trang công khai đã được kết xuất.

TL;DR

  • Một khung tổ chức một hệ thống trích xuất có thể lặp lại. Nó cung cấp các móc vòng đời cho các yêu cầu, phân tích, xử lý mục, lỗi và đầu ra.
  • Một thư viện giải quyết một nhiệm vụ lập trình hẹp hơn. Một khung thường kiểm soát luồng thực thi và yêu cầu mã dự án lấp đầy các điểm mở rộng đã được định nghĩa.
  • Thu thập và scraping có liên quan nhưng tách biệt. Khám phá tìm tài nguyên; trích xuất chuyển đổi các tài nguyên đã chọn thành bản ghi.
  • Kết xuất trình duyệt là một lựa chọn thu thập. Một khung có thể sử dụng HTTP trực tiếp cho một số trang và trình duyệt được quản lý cho những trang động.
  • Các hoạt động quyết định xem một khung có thành công hay không. Quan sát, thử nghiệm, chính sách nguồn và quản lý thay đổi có ý nghĩa sau khi trình phân tích đầu tiên hoạt động.

Một khung web scraping xác định quy trình làm việc

Một khung web scraping là một cấu trúc phần mềm để xây dựng và vận hành các crawler và extractor thông qua các thành phần, quy ước và sự kiện vòng đời đã được định nghĩa. Nó thường phối hợp việc tạo yêu cầu, lập lịch, tải xuống, phân tích, xử lý mục, bảo quản và tín hiệu hoạt động trong khi mã ứng dụng cung cấp các quy tắc riêng của từng trang web.

Khung không phải là chính người trích xuất. Các bộ chọn, lược đồ, logic phân trang và ngữ nghĩa nguồn vẫn thuộc về dự án, trong khi khung cung cấp mô hình thực thi kết nối những lựa chọn đó. Đường ranh hữu ích là quyết định mà thông tin hỗ trợ. Một trường được thu thập không có giá trị chỉ vì nó tồn tại; trường đó trở nên hữu ích khi ý nghĩa, ngữ cảnh quan sát và người tiêu dùng dự định của nó được công bố.

Đối với một khung web scraping, đơn vị công việc là một tài nguyên được yêu cầu và các bản ghi phát sinh của nó. Kết quả mong muốn là một tập dữ liệu có thể tái tạo thay vì một đống tệp trang. Sự phân biệt đó giữ cho việc thu thập tách biệt khỏi việc diễn giải: một bản chụp trang là bằng chứng, một bản ghi được trích xuất là một đại diện, và một kết luận phân tích là một hiện vật quyết định mà nên giữ được truy xuất cả hai.

Cách các yêu cầu trở thành bản ghi có cấu trúc

Một khung biến một định nghĩa mục tiêu thành một chuỗi kiểm soát của việc khám phá, thu thập, phân tích, xác thực và giao hàng.

  1. Chọn URL đã được phê duyệt và đính kèm siêu dữ liệu yêu cầu như thị trường, mục đích và loại trang dự kiến. Giai đoạn nên ghi lại đầu vào, đầu ra, chủ sở hữu và quy tắc chấp nhận để các lỗi có thể được phân lập mà không coi toàn bộ quy trình làm việc như một công việc tối nghĩa.
  2. Lập lịch các yêu cầu giới hạn theo quy tắc máy chủ, chính sách nhân bản và độ ưu tiên. Giai đoạn nên ghi lại đầu vào, đầu ra, chủ sở hữu và quy tắc chấp nhận để các lỗi có thể được phân lập mà không coi toàn bộ quy trình làm việc như một công việc tối nghĩa.
  3. Thu thập tài nguyên bằng HTTP trực tiếp hoặc một phiên trình duyệt được chọn từ hành vi trang có thể quan sát. Giai đoạn nên ghi lại đầu vào, đầu ra, chủ sở hữu và quy tắc chấp nhận để các lỗi có thể được phân lập mà không coi toàn bộ quy trình làm việc như một công việc tối nghĩa.
  4. Xác nhận danh tính trang trước khi phân tích các trường để một trang lỗi không thể cải trang thành dữ liệu hợp lệ. Giai đoạn nên ghi lại đầu vào, đầu ra, chủ sở hữu và quy tắc chấp nhận để các lỗi có thể được phân lập mà không coi toàn bộ quy trình làm việc như một công việc tối nghĩa.
  5. Trích xuất các mục và liên kết được loại, sau đó xác thực các trường và mối quan hệ cần thiết. Giai đoạn nên ghi lại đầu vào, đầu ra, chủ sở hữu và quy tắc chấp nhận để các lỗi có thể được phân lập mà không coi toàn bộ quy trình làm việc như một công việc tối nghĩa.
  6. Gửi các mục đã được chấp nhận vào kho lưu trữ trong khi công bố các số liệu, nguồn gốc, và các trường hợp thất bại có cấu trúc. Giai đoạn nên ghi lại đầu vào, đầu ra, chủ sở hữu và quy tắc chấp nhận để các lỗi có thể được phân lập mà không coi toàn bộ quy trình làm việc như một công việc tối nghĩa.

Trình tự có ý nghĩa vì cấu trúc trang web và hành vi phản hồi có thể thay đổi trước khi nhóm kỹ thuật hoặc phân tích thay đổi quy trình quyết định của mình. Giữ cho thu thập, chuẩn hóa, diễn giải và giao hàng tách biệt cho phép một lớp tiến hóa mà không thay đổi âm thầm mọi chỉ số hạ nguồn. Nó cũng hỗ trợ việc xử lý lại lịch sử khi một phân loại, mô hình, quy tắc phù hợp hoặc định nghĩa kinh doanh được cải thiện.

Móc và phần mềm trung gian cho phép các dự án thay đổi tiêu đề yêu cầu, định tuyến, phân tích và xử lý mục mà không phải viết lại bộ lập lịch. Tính linh hoạt tương tự có thể làm mờ hành vi nếu quyền sở hữu và thứ tự không được tài liệu. Do đó, một triển khai thực tiễn giữ bằng chứng thô, bản ghi đã được chuẩn hóa và các phán đoán phát sinh trong các kho lưu trữ hoặc bảng đã được phiên bản rõ ràng.

Khung, Thư viện, Dịch vụ, hoặc Kịch bản Một lần?

Cách tiếp cậnPhù hợp nhấtĐánh đổi
Kịch bản một lầnMột tập hợp trang cố định nhỏVòng đời và khả năng quan sát là tùy chỉnh
Thư viện phân tíchChuyển đổi HTML hoặc JSONỨng dụng sở hữu việc lập lịch và trạng thái
Khung scrapingQuy trình làm việc nhiều trang định kỳDự án tuân theo vòng đời khung
Trình duyệt được quản lýCác trang tương tác hoặc được trình duyệt từ phía khách hàngThời gian của trình duyệt và chính sách phiên phải được kiểm soát
Dịch vụ trích xuất được lưu trữMột giao diện từ xa đã được xác địnhKiểm soát phụ thuộc vào hợp đồng dịch vụ

Ranh giới chính xác thường là hỗn hợp. Một khung có thể điều phối các yêu cầu trực tiếp, các phiên trình duyệt được quản lý và xác thực hạ nguồn mà không giả vờ rằng mọi mục tiêu đều cần phương pháp thu thập giống nhau.

Các tùy chọn trong bảng không phải là các mức độ trưởng thành. Một đánh giá thủ công có thể là kiểm soát chính xác cho một mẫu nhỏ, quan trọng, trong khi tự động hóa là thích hợp cho các quyết định lặp lại với xử lý lỗi có thể đo lường được. Sự lựa chọn nên theo dõi chi phí của một kết quả sai, tốc độ thay đổi nguồn, và bằng chứng mà người xem cần.

Nơi các Framework kiếm được chi phí của chúng

Bộ sưu tập danh mục

Thu thập các trang danh mục và sản phẩm, phát ra một sơ đồ, và giữ nguyên bối cảnh nguồn cho mỗi mục.

Giám sát thay đổi

Lên lịch cho các trang đã biết, so sánh các trường có ý nghĩa, và chỉ thông báo sự kiện khi trạng thái chấp nhận thay đổi.

Tập hợp nghiên cứu

Khám phá các tài liệu đã được phê duyệt, bảo tồn nguồn gốc, và tách văn bản thô khỏi việc làm sạch và gán nhãn sau này.

Truy xuất tìm kiếm và thư mục

Duyệt các trang kết quả dưới những giới hạn cụ thể và giữ bối cảnh truy vấn, địa phương và hạng mục với mỗi bản ghi.

Các Framework có lợi khi công việc lặp lại trên nhiều tài nguyên hoặc phải được vận hành bởi nhiều người. Mỗi trường hợp sử dụng vẫn cần một chủ sở hữu được đặt tên và một quy tắc phát hành. Một quy trình làm việc của framework thu thập web không nên gửi dữ liệu đến bảng điều khiển, mô hình, người bán hàng, hoặc hành động tự động cho đến khi người nhận biết được độ tinh chỉnh của bản ghi, khoảng thời gian tươi mới, chính sách giá trị thiếu và mục đích được phép.

Thiết kế hợp đồng dự án

Chất lượng framework được nhìn thấy ở các ranh giới hơn là ở số lượng tính năng tích hợp.

  • Kiểm tra danh tính trang. Xác nhận phản hồi là tài nguyên dự định trước khi các bộ chọn chạy.
  • Hợp đồng mục có kiểu. Làm cho sự vắng mặt, giá trị null, đơn vị, và các định danh trở nên rõ ràng.
  • Khám phá xác định. Ghi lại lý do tại sao mỗi URL vào hàng đợi và quy tắc phạm vi nào đã chấp nhận nó.
  • Thực hiện có giới hạn. Đặt giới hạn máy chủ, độ sâu, trang, và thời gian phù hợp với nhiệm vụ đã được phê duyệt.
  • Bằng chứng hoạt động. Phơi bày trạng thái hàng đợi, kết quả yêu cầu, phiên bản bộ phân tích, và lý do từ chối mục.

Đánh giá chất lượng nên lấy mẫu toàn bộ con đường từ cấu trúc trang web và hành vi phản hồi đến một tập dữ liệu có thể tái tạo hơn là một đống tệp trang. Độ chính xác cấp trường một mình có thể che giấu một trang sai, một quan sát lỗi thời, một thực thể không khớp, hoặc một quy tắc quyết định được áp dụng bên ngoài phân đoạn dự định của nó. Lưu trữ phiên bản của mỗi bộ phân tích, phân loại, mô hình, ngưỡng, và ánh xạ cần thiết để tái tạo bản ghi đã phát hành.

Các chỉ số tốt kết nối hành vi kỹ thuật với chi phí quyết định. Độ bao phủ cho thấy những gì quy trình làm việc có thể quan sát; độ chính xác cho thấy liệu các trường đã phát hành có đồng ý với bằng chứng được gán nhãn hay không; độ tươi mới cho thấy liệu quan sát có kịp thời đủ không; và độ ổn định cho thấy liệu một phép đo có thay đổi do thị trường thay đổi hay vì quá trình thu thập thay đổi.

Chính sách thu thập và các ranh giới nguồn

Một framework có thể tự động hóa truy cập, nhưng nó không thể quyết định liệu một nguồn hoặc mục đích là thích hợp.

Đối với việc thu thập tự động, Giao thức loại trừ Robots định nghĩa cách các chủ sở hữu dịch vụ công bố sở thích của trình thu thập. Những sở thích đó không thay thế quyền ủy quyền, xem xét theo hợp đồng, hoặc các giới hạn mục đích, nhưng chúng thuộc về chính sách thu thập và nên được đánh giá trước khi một lịch trình được kích hoạt.

Tiêu chuẩn WHATWG DOM Standard cung cấp một ranh giới thứ hai cho chủ đề này. Nó giúp các nhóm phân biệt dữ liệu có thể quan sát về mặt kỹ thuật với dữ liệu thích hợp để giữ lại, kết hợp, chấm điểm, hoặc sử dụng cho một hành động. Quyết định về quyền truy cập, lưu trữ, và các quy tắc xóa nên tuân theo trường nhạy cảm nhất trong một bản ghi thay vì trường ít nhạy cảm nhất.

Tiêu chuẩn DOM và tự động hóa trình duyệt giúp xác định những gì một bộ phân tích và máy khách trình duyệt từ xa tương tác với; chúng không định nghĩa ý nghĩa kinh doanh của các trường được trích xuất. Tiêu chuẩn W3C WebDriver specification cung cấp một tham chiếu cụ thể cho sự đại diện theo miền, rủi ro, hoặc thực hành dữ liệu công cộng liên quan ở đây.

Sử dụng Trình duyệt được quản lý bên trong một Framework

Một trình duyệt được quản lý thuộc về một giao diện thu thập rõ ràng, không rải rác qua mã phân tích.

Trình duyệt Agent không chứa rác có thể cung cấp phiên làm việc trình duyệt được quản lý cho các trang công cộng đã được phê duyệt, bao gồm cả các trang có nội dung hữu ích xuất hiện sau khi trình duyệt phía máy khách render. Ứng dụng vẫn có trách nhiệm với phê duyệt mục tiêu, lựa chọn trường, bước điều hướng, quy tắc trích xuất, giới hạn khối lượng công việc, lưu trữ, và mọi cách diễn giải áp dụng sau khi thu thập.

Một bản ghi thu thập bền bỉ bao gồm URL đã yêu cầu, URL cuối cùng, thời gian quan sát, thị trường hoặc địa phương khi có liên quan, kiểm tra danh tính trang, và bằng chứng thô cần thiết để giải thích một tập dữ liệu có thể tái tạo hơn là một đống tệp trang. Giữ các thông tin đó bên cạnh bản ghi đã lấy tạo điều kiện cho việc điều chỉnh sau này khi cấu trúc hoặc ý nghĩa của trang thay đổi.

Đối xử với HTML đã render, ảnh chụp màn hình, quan sát mạng, và các bản ghi trích xuất như các đối tượng khác nhau. Framework nên cho phép mỗi đối tượng được giữ lại hoặc từ chối theo mục đích và quy tắc lưu trữ riêng của nó.

Mô hình thất bại trong dự án Framework

Các dự án Framework thất bại khi cơ sở hạ tầng chung che dấu những giả định cụ thể về nguồn.

  • Bắt đầu bằng một lớp cơ sở toàn cầu. Hành vi chung được đoán trước khi hai mục tiêu thực sự chứng minh những gì được chia sẻ.
  • Phân tích trước khi kiểm tra danh tính. Các trang thách thức hoặc đồng ý tạo ra các bản ghi hợp lệ về cấu trúc nhưng sai.
  • Liên kết các bộ chọn với lưu trữ. Một thay đổi trang bắt buộc thay đổi lược đồ và cơ sở dữ liệu đồng thời.
  • Theo dõi liên kết không giới hạn. Một hạt giống nhỏ mở rộng thành các con đường không liên quan và chi phí không ổn định.
  • Xử lý nhật ký như một sự quan sát. Văn bản tự do không trả lời loại trang nào, các trường, hoặc phiên bản nào đang thất bại.

Khi các kết quả khác biệt, so sánh trạng thái mong đợi và quan sát được một ranh giới tại một thời điểm: danh tính nguồn, độ hoàn chỉnh của việc ghi nhận, khớp thực thể, giá trị đã được chuẩn hóa, quy tắc phân tích, timing giao hàng, và hành động của người tiêu dùng. Thứ tự đó ngăn chặn sự sai lệch trong bảng điều khiển bị chẩn đoán nhầm là một sự thất bại trong việc thu thập và giữ công việc khắc phục liên quan đến bằng chứng.

Danh sách kiểm tra sẵn sàng của khuôn khổ

Sử dụng các câu hỏi sau đây trước khi một thử nghiệm trở thành một quy trình sản xuất lặp lại.

  • Quyết định nào sẽ được tập dữ liệu này hỗ trợ và ai sở hữu quyết định đó?
  • Một bản ghi đại diện cho điều gì, và các định danh nào giữ cho hạt đó ổn định?
  • Những nguồn và trạng thái trang nào được phê duyệt cho việc thu thập?
  • Những trường nào là bắt buộc, tùy chọn, dẫn xuất hoặc bị cấm?
  • Làm thế nào để ghi lại ngôn ngữ, tiền tệ, thời gian, và bối cảnh quan sát?
  • Bằng chứng nào được gán nhãn định nghĩa độ chính xác và độ bao phủ chấp nhận được?
  • Làm thế nào để xử lý các sửa đổi, giữ lại, xóa, và yêu cầu truy cập?
  • Sự thay đổi nào trong hợp đồng nguồn hoặc người tiêu dùng kích hoạt một cuộc đánh giá mới?

Một thiết kế đã sẵn sàng cho một thử nghiệm giới hạn khi mọi câu trả lời đều có người sở hữu, tài nguyên đã được yêu cầu và các bản ghi dẫn xuất của nó có thể được kiểm tra, và người tiêu dùng có thể giải thích hành động nào theo sau mỗi kết quả. Hãy xem lại danh sách kiểm tra bất cứ khi nào hành vi của nguồn, độ bao phủ thị trường, cơ sở pháp lý, phân loại, mô hình, hoặc thẩm quyền quyết định thay đổi.

Kết luận: Một khuôn khổ là một hợp đồng hoạt động

Một khuôn khổ thu thập dữ liệu web điều phối công việc thu thập lặp lại, nhưng giá trị của nó đến từ các ranh giới rõ ràng. Các dự án mạnh tách biệt việc phát hiện, thu thập, xác minh trang, phân tích, xác thực, lưu trữ, và giao hàng. Họ chỉ chọn việc kết xuất trình duyệt nơi hành vi của trang yêu cầu và giữ đủ bằng chứng để giải thích mọi bản ghi đã phát hành.

Bước thực tiễn tiếp theo là một thử nghiệm hẹp: chọn một tài nguyên đã được yêu cầu và các bản ghi dẫn xuất của nó, thu thập bằng chứng tối thiểu, chuẩn hóa nó theo một lược đồ rõ ràng, xem xét kết quả với đội ngũ kỹ thuật hoặc phân tích, và chỉ mở rộng sau khi hồ sơ lỗi quan sát được phù hợp với dung sai của quyết định.

Sẵn sàng để xây dựng một khuôn khổ thu thập dữ liệu web?

Bắt đầu với một quy trình làm việc của trang công khai có giới hạn và kết nối kết xuất được quản lý với một hợp đồng trích xuất rõ ràng.

Đăng ký hôm nay và nhận $5 tín dụng miễn phíkhông yêu cầu 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 khuôn khổ thu thập dữ liệu web có giống như một trình thu thập dữ liệu không?

Không. Một trình thu thập dữ liệu là bất kỳ chương trình hoặc quy trình làm việc nào trích xuất thông tin, trong khi một khuôn khổ cung cấp cấu trúc tái sử dụng để xây dựng và vận hành các quy trình làm việc như vậy. Một dự án xây dựng trên một khuôn khổ vẫn cần phát hiện, phân tích, xác thực và chính sách nguồn cụ thể theo mục tiêu.

Có cần mỗi khuôn khổ một trình duyệt không?

Không. HTTP trực tiếp đơn giản hơn cho HTML ổn định hoặc phản hồi JSON đã được tài liệu. Một trình duyệt thích hợp khi nội dung hữu ích hoặc điều hướng phụ thuộc vào việc thực hiện hoặc tương tác bên phía khách hàng. Lựa chọn thu thập nên được thực hiện theo loại trang.

Sự khác biệt giữa việc thu thập thông tin và thu thập dữ liệu là gì?

Việc thu thập thông tin phát hiện và lấy tài nguyên dưới một phạm vi, trong khi việc thu thập dữ liệu trích xuất thông tin đã được xác định từ các tài nguyên đã chọn. Các khuôn khổ thường hỗ trợ cả hai, nhưng một dự án nên giữ quy tắc phát hiện liên kết tách biệt khỏi ngữ nghĩa bản ghi.

Một đội nên chọn khuôn khổ như thế nào?

Chọn từ hình dạng khối lượng công việc, ngôn ngữ, nhu cầu đồng thời, mô hình trạng thái, các điểm mở rộng, môi trường triển khai, và các nhà điều hành chứng cứ cần. Một khuôn khổ phổ biến vẫn là một sự phù hợp kém nếu vòng đời của nó xung đột với nguồn hoặc hợp đồng đánh giá của dự án.

Agent Browser có thể thay thế một khuôn khổ thu thập dữ liệu không?

Agent Browser cung cấp công cụ thu thập trình duyệt đã được quản lý cho các trang đã được kết xuất; nó không thay thế lược đồ ứng dụng, phê duyệt nguồn, xác thực, phối hợp, hoặc logic kinh doanh. Nó có thể là một thành phần thu thập bên trong một hệ thống dựa trên khuôn khổ.

Tài liệu tham khảo