Bị chặn khi thu thập dữ liệu? Nguyên nhân và Chẩn đoán Thực tiễn

Tại sao tôi lại bị chặn khi thu thập dữ liệu?

Trình duyệt thu thập không có dữ liệu thực hiện các phiên trình duyệt được quản lý để thu thập dữ liệu web công cộng từ các trang web động.

Bị chặn khi thu thập dữ liệu có nghĩa là đích đến hoặc một trung gian đã từ chối, thách thức, hoặc giới hạn yêu cầu của bạn. Nguyên nhân có thể là chính sách truy cập, khối lượng yêu cầu, trạng thái phiên bị thiếu, một khách hàng không được hỗ trợ, hoặc một quy tắc bảo mật. Một kết quả phân tích rõ ràng không tự nó xác lập một khối, và phản hồi HTTP 403 không xác định quy tắc cụ thể nào đã sản sinh ra nó.

Nhiệm vụ đầu tiên của bạn là phân loại những gì đã trở lại. Lưu trạng thái phản hồi, loại nội dung, URL cuối cùng, thông điệp hiển thị, và một đoạn trích tối thiểu chứng minh trang nào đã được cung cấp. Những quan sát đó hữu ích hơn là thay đổi địa chỉ IP ngay lập tức hoặc viết lại mọi tiêu đề.

Tại sao tôi lại bị chặn khi thu thập dữ liệu?

Các trang web chặn các yêu cầu tự động khi các yêu cầu đó xung đột với quy định truy cập của họ, chính sách lưu lượng, hoặc yêu cầu xác thực khách hàng. Một số hạn chế là quyết định kinh doanh có chủ ý. Những hạn chế khác là các dương tượng sai ảnh hưởng đến tự động hóa được phép hoặc khách truy cập thông thường.

Một trang công cộng vẫn có thể có các điều kiện governing truy cập tự động. Một tuyến đường có thể yêu cầu một phiên được thiết lập thông qua điều hướng bình thường, trong khi một tuyến đường khác tiếp cận nội dung một cách trực tiếp. Một API có thể yêu cầu thông tin xác thực ngay cả khi trang hiển thị cho người tương ứng là rõ ràng. Đối xử với tài nguyên được yêu cầu và hợp đồng truy cập của nó như là điểm khởi đầu.

Định nghĩa HTTP của 403 Bị cấm thiết lập rằng máy chủ đã hiểu yêu cầu và từ chối thực hiện nó. Nó không chứng minh rằng sự từ chối đến từ phát hiện bot. Ủy quyền ứng dụng, hạn chế thư mục, hoặc quy tắc cổng có thể tạo ra trạng thái giống nhau.

Phân tách các khối khỏi các lỗi trích xuất khác

Một công cụ thu thập dữ liệu nên xác định phản hồi bị từ chối trước khi chuyển nội dung của nó vào một bộ trích xuất bình thường. Nếu không, thông điệp bảo mật có thể trở thành mô tả sản phẩm, và nội dung bị mất có thể bị báo cáo sai là mặt hàng hết hàng.

Quan sátDanh mục Có thểBằng chứng để Kiểm tra
Thông điệp rõ ràng bị từ chối truy cậpTừ chối chính sách hoặc ủy quyềnNội dung phản hồi, định danh yêu cầu và sự kiện phía chủ sở hữu.
Thông điệp giới hạn tỷ lệThực thi chính sách lưu lượngCác tuyến đường bị ảnh hưởng và khối lượng công việc kết hợp.
Trang xác minh trình duyệtXác thực khách hàng hoặc thách thức tương tácTiêu đề trang, nội dung tài liệu, và quy trình trình duyệt được phép.
Chuyển hướng đăng nhậpYêu cầu xác thựcURL cuối cùng và hợp đồng truy cập tài nguyên.
Trang bình thường không có các trường mong đợiVấn đề hiển thị, vị trí, hoặc phân tíchDữ liệu hiển thị, trạng thái đồng ý, và markup hiện tại.

Giữ thành công vận chuyển và thành công trích xuất tách biệt. Một phản hồi có thể được nhận thành công trong khi chứa sự đại diện sai. Ngược lại, một bộ phân tích có thể thất bại trên một trang hoàn toàn có thể truy cập sau khi nhà xuất bản thay đổi markup của nó. Những sự cố này thuộc về các chủ sở hữu khác nhau và không nên chia sẻ một chỉ số “bị chặn” chung.

Các tín hiệu có thể ảnh hưởng đến quyết định truy cập

Xác thực lưu lượng có thể xem xét nguồn mạng, đặc điểm yêu cầu, hành vi trình duyệt, và sự liên tục phiên, nhưng các tín hiệu và trọng số của chúng khác nhau tùy theo triển khai. Một triệu chứng đơn lẻ không thể tiết lộ hoàn toàn mô hình quyết định của một nhà cung cấp.

Nguồn mạng và khối lượng yêu cầu

Một trang web có thể áp dụng các quy tắc khác nhau cho các phạm vi mạng hoặc vị trí khác nhau. Một địa chỉ thoát chia sẻ cũng có thể mang lưu lượng từ nhiều công việc hoặc người dùng. Nếu một công nhân báo cáo tỷ lệ yêu cầu thấp, hãy xem xét lưu lượng tổng hợp chia sẻ danh tính của nó trước khi kết luận rằng một giới hạn là không hợp lý.

Khối lượng bao gồm nhiều hơn là chỉ việc lấy trang chính. Điều hướng trình duyệt có thể kích hoạt yêu cầu tài liệu, kịch bản, hình ảnh, và ứng dụng. Chỉ đếm các URL trong tệp đầu vào của bạn có thể khiến lưu lượng mà đích nhận được bị đánh giá thấp.

Đặc điểm khách hàng

Thư viện HTTP và trình duyệt thực hiện công việc khác nhau. Một trình duyệt thực hiện các kịch bản trang và theo dõi vòng đời tải của trang; một khách hàng HTTP cơ bản thu hồi phản hồi mà không tái tạo môi trường đó. Mô hình dấu vân tay trình duyệt giải thích cách các đặc điểm trình duyệt có thể quan sát được có thể phân biệt giữa các khách hàng. Thay đổi chuỗi User-Agent không tạo ra một thời gian chạy trình duyệt.

Trạng thái phiên

Một số trang phụ thuộc vào trạng thái được tạo ra trước đó trong chuyến thăm. Cơ chế cookie HTTP cho phép máy chủ duy trì trạng thái trên các yêu cầu. Kiểm tra xem quy trình làm việc được phép của bạn có bảo tồn phiên liên quan hay không, thay vì di chuyển cookie giữa các khách hàng không liên quan hoặc giả định rằng mỗi URL là độc lập.

Xây dựng một Cuộc Điều Tra Dựa trên Bằng Chứng

Một cuộc điều tra có kiểm soát thay đổi một biến liên quan tại một thời điểm và ghi lại xem nội dung được trả về có khớp với tài nguyên công cộng dự kiến hay không. Làm việc trong các điều kiện truy cập được phép của trang web và giữ cho mẫu nhỏ.

  1. Xác nhận rằng đích đến là URL công khai dự kiến, với đường dẫn và phương thức đúng.
  2. Đọc phần nội dung phản hồi và vị trí cuối cùng trước khi giải thích mã trạng thái.
  3. Kiểm tra giới hạn tốc độ rõ ràng, yêu cầu xác thực hoặc từ chối chính sách.
  4. So sánh luồng tự động với luồng điều hướng thông thường được phép.
  5. Kiểm tra khả năng liên tục của phiên, yêu cầu hiển thị và lưu lượng tổng hợp.
  6. Tăng cường từ chối rõ ràng đến chủ sở hữu trang web với một gói chứng cứ ngắn gọn.

Hãy tưởng tượng một thư mục công cộng mà trang đầu tiên hiển thị đúng nhưng các trang sau hiển thị màn hình đăng nhập. Mẫu đó không xác định rằng bộ phân tích cú pháp bị hỏng. Xem xét URL cuối cùng và yêu cầu truy cập cho tuyến đường sau. Nếu phân trang vượt vào một khu vực bị hạn chế, hãy ngừng thu thập phần đó và yêu cầu một giao diện dữ liệu đã được phê duyệt.

Trong một kịch bản khác, giả sử phản hồi chứa tiêu đề trang dự kiến và bộ sản phẩm, nhưng trường giá trống. Kiểm tra xem khu vực đã chọn, biến thể sản phẩm hoặc trạng thái đồng ý có thay đổi những gì trang hiển thị hay không. Một giá trị hợp lệ bị thiếu không nên kích hoạt một nỗ lực vượt qua cơ chế bảo mật không có mặt.

Nơi Scrapeless Scraping Browser Thích Hợp

Trình duyệt Scraping không gây rác là quan trọng khi một quy trình công khai được ủy quyền cần một môi trường trình duyệt được quản lý. Nó cung cấp việc thực thi trình duyệt mà không yêu cầu nhóm ứng dụng của bạn vận hành cơ sở hạ tầng trình duyệt trực tiếp.

Sử dụng the Khả năng của Trình duyệt Quét không có rác để chọn các tính năng trình duyệt mà quy trình làm việc của bạn thực sự yêu cầu. Giữ một chuỗi điều hướng dễ hiểu, xác thực trang kết quả và tách biệt lỗi dịch vụ khỏi phản hồi của trang mục tiêu. Một trình duyệt được quản lý không đảm bảo quyền truy cập vào mọi trang web hoặc ghi đè lên chính sách của chủ sở hữu trang.

Trước khi mở rộng một công việc thu thập, hãy xác định bằng chứng tối thiểu của một kết quả hợp lệ. Đối với một danh mục công khai, điều đó có thể bao gồm một định danh sản phẩm, một tiêu đề và thị trường đã chọn. Đối với một thư mục, điều đó có thể bao gồm thể loại đã yêu cầu và danh sách kết quả. Các dấu hiệu đúng phụ thuộc vào trang; mục đích của chúng là ngăn chặn nội dung không liên quan vào bộ dữ liệu.

Xem xét Giá không bị gián đoạn các yêu cầu về thời gian thực thi trình duyệt và khối lượng dữ liệu của bạn. Cuộc thảo luận về các mô hình truy cập và chặn web scraping cung cấp ngữ cảnh bổ sung, nhưng bất kỳ lựa chọn quy trình nào vẫn cần được xác nhận so với hành vi hiện tại của đích.

Thiết kế Pipeline để Dừng Lại Mượt Mà

Một yêu cầu bị chặn nên sản sinh ra một kết quả thu hồi rõ ràng thay vì một hồ sơ kinh doanh gây hiểu lầm. Bảo tồn lý do, URL bị ảnh hưởng, và điểm mà việc thu thập dừng lại.

Tách các trang thành công, các trang hợp lệ trống, các trang bị thách thức và các trang bị từ chối. Điều này cho phép người dùng hạ nguồn phân biệt “không tồn tại mục nào phù hợp” với “người thu thập không thể quan sát mục đó.” Giữ nguyên chứng cứ gốc chỉ trong thời gian cần thiết, và bôi đen các tham số truy vấn nhạy cảm, cookie, và các giá trị xác thực từ các nhật ký được chia sẻ.

Giảm thiểu lưu lượng giao thông có thể tránh được thông qua việc loại bỏ các bản sao và tái sử dụng dữ liệu công khai đã được thu thập mà yêu cầu tính mới cho phép. Thiết lập một hàng đợi công việc giới hạn và ngừng phân công công việc khi gặp phải một hạn chế rõ ràng. Một xuất khẩu đã được phê duyệt, giao diện đối tác, hoặc thỏa thuận thu thập bằng văn bản có thể là giải pháp phù hợp khi một trang web không cho phép tự động hóa theo ý muốn.

Kết luận

Khi việc quét bị chặn, hãy phân loại phản hồi trước khi thay đổi khách hàng. Phân biệt các hạn chế truy cập cố ý với các lỗi về hiển thị và phân tích, kiểm tra khối lượng công việc kết hợp, và bảo tồn đủ chứng cứ để chủ sở hữu có trách nhiệm điều tra. Sử dụng trình duyệt khi trang được phép yêu cầu một cái, và chấp nhận một từ chối rõ ràng như là lý do để xem xét truy cập thay vì tăng cường áp lực thu thập.

Xác thực các Trang Công cộng Trước khi Trích xuất Dữ liệu

Sử dụng Trình duyệt Lấy thông tin Không chất thải cho các quy trình duyệt web được phép và duy trì kết quả thu thập rõ ràng.

Đăng ký hôm nay và nhận $5 trong tín dụng miễn phíkhông yêu cầu thẻ tín dụng.

Nhận khoản tín dụng $5 của bạn →

Câu hỏi thường gặp

HTTP 403 Có Luôn Có Nghĩa Là Phát Hiện Bot Không?

HTTP 403 không phải lúc nào cũng có nghĩa là phát hiện bot. Nó cho biết rằng yêu cầu đã bị từ chối, trong khi nguyên nhân có thể là do ủy quyền ứng dụng, chính sách tường lửa, hoặc một hạn chế khác. Đọc phản hồi và tham khảo các nhật ký từ phía chủ sở hữu khi có sẵn.

Liệu một Proxy có khắc phục mọi khối chặn khi thu thập dữ liệu không?

Một proxy không thể khắc phục mọi khối cản scraping vì định tuyến chỉ là một phần của yêu cầu. Nó không thể cung cấp quyền, thực hiện hành vi trình duyệt thiếu hoặc sửa chữa điều kiện trích xuất bị hỏng. Chọn thay đổi mạng chỉ khi chúng giải quyết một yêu cầu đã được thiết lập.

Tại sao trình duyệt hoạt động trong khi khách hàng HTTP thất bại?

Trình duyệt có thể thực thi các kịch bản và duy trì một phiên mà một khách hàng HTTP không tái hiện. So sánh việc điều hướng thực tế và nội dung được trả về, bao gồm cả việc trình duyệt có đăng nhập hay không. Một trình duyệt đã đăng nhập không phải là một cơ sở hợp lệ cho việc thu thập ẩn danh.

Bạn nên gửi gì cho chủ sở hữu trang web?

Gửi URL bị ảnh hưởng, thời gian gần đúng kèm theo múi giờ, lỗi hiển thị và mã định danh yêu cầu khi có sẵn. Mô tả quy trình dữ liệu công khai dự kiến và khối lượng mong đợi. Không gửi mật khẩu, tiêu đề xác thực hoặc bản ghi phiên chưa chỉnh sửa.

Tài liệu tham khảo