robots.txt là gì? Quy tắc, Phạm vi và Hành vi của Crawler
Trình duyệt Thu thập Dữ liệu Không Sự cố hỗ trợ các quy trình dữ liệu dựa trên trình duyệt cần kiểm tra và tôn trọng robots.txt trước khi yêu cầu các trang công cộng được phép.
Tóm lại
- Robots.txt mô tả một phần quan sát được về cách mà các trang web hoặc hệ thống web hoạt động. Định nghĩa hữu ích kết nối khái niệm với dữ liệu, trạng thái, và yêu cầu mà quy trình làm việc có thể xác minh.
- Phản hồi HTML và trạng thái trình duyệt không thể hoán đổi cho nhau. Một số giá trị có sẵn ngay lập tức, trong khi những giá trị khác cần phải render, tương tác, hoặc một phản hồi có cấu trúc sau đó.
- Chọn phương pháp nhẹ nhất mà trả về dữ liệu đầy đủ. Phân tích HTML khi nó là đủ, kiểm tra các yêu cầu có cấu trúc khi thích hợp và sử dụng trình duyệt khi thực thi trình duyệt là thiết yếu.
- Hoàn thành phải được chứng minh với bằng chứng nội dung. Các định danh ổn định, trạng thái kết thúc rõ ràng và các điều kiện sẵn sàng cụ thể theo nguồn thì an toàn hơn so với các độ trễ cố định.
- Việc thu thập có trách nhiệm tôn trọng các quy tắc truy cập đã công bố và công suất. Khả năng hiển thị công khai không loại bỏ các điều khoản, nghĩa vụ pháp lý, chỉ thị robots, hoặc kiểm soát tốc độ.
robots.txt là gì?
robots.txt là một tệp văn bản thuần túy mà qua đó một trang web công bố hướng dẫn thu thập thông tin cho các user agents tự động. Nó thường nằm ở gốc của một máy chủ, chẳng hạn như https://example.com/robots.txt. Một crawler tuân thủ sẽ tải tệp, chọn nhóm phù hợp với token user-agent của nó và áp dụng các quy tắc cho phép hoặc không cho phép trước khi yêu cầu các URL được bảo vệ.
Tệp kiểm soát việc thu thập thông tin, không phải ủy quyền. Một URL không được cho phép vẫn có thể truy cập công khai trong trình duyệt, phát hiện từ các liên kết hoặc được đề cập ở nơi khác. Thông tin nhạy cảm phải được bảo vệ bằng xác thực và kiểm soát truy cập phía máy chủ thay vì một quy tắc robots quảng cáo đường dẫn.
robots.txt cũng không cung cấp một chỉ thị noindex tin cậy. Nếu một crawler không thể tải trang không được cho phép, nó không thể đọc các chỉ thị lập chỉ mục cấp trang bên trong trang đó. Các chủ sở hữu trang web cần một URL công khai được loại trừ khỏi tìm kiếm nên sử dụng các kiểm soát lập chỉ mục được hỗ trợ trong khi cho phép crawler đọc chúng, hoặc hạn chế hoàn toàn quyền truy cập.
Sự phân biệt then chốt là thực tế: một quy trình dữ liệu nên xác định lớp sở hữu giá trị mục tiêu. Lớp này có thể là phản hồi tài liệu, bộ nhớ trình duyệt, một nút đã được render, một phản hồi nền hoặc một chính sách phía máy chủ. Khi lớp đã được xác định, quy trình làm việc có thể thu thập giá trị với ít giả định hơn và xác minh nó với hành vi trang mà người dùng thực sự nhận được.
Cách Robots.Txt Hoạt Động
robots.txt trở nên dễ lý luận hơn khi quy trình được chia thành các giai đoạn quan sát được. Mỗi giai đoạn tạo ra bằng chứng có thể được kiểm tra trong phản hồi, trình duyệt, nhật ký mạng, hoặc tập hồ sơ đã trích xuất.
Crawler yêu cầu tệp gốc
Các quy tắc được xác định bởi sơ đồ, máy chủ, và cổng. Một tệp trên một miền phụ không tự động kiểm soát miền phụ khác.
Các nhóm user-agent được chọn
Mỗi nhóm bắt đầu bằng một hoặc nhiều dòng user-agent và chứa các quy tắc áp dụng cho các crawler khớp. Các thực hiện khác nhau có thể có các chi tiết khớp được tài liệu hóa.
Các đường dẫn được đánh giá
Các giá trị Cho phép và Không cho phép mô tả các mẫu đường dẫn URL. Tính cụ thể và hỗ trợ mẫu nên được thực hiện theo hành vi giao thức đã công bố của crawler, không phải đoán từ các kiểm tra chuỗi con thông thường.
Vị trí Sitemap có thể được quảng bá
Các chỉ thị Sitemap độc lập với một nhóm user-agent và có thể chỉ định các crawler đến XML, văn bản, hoặc danh sách nguồn cấp dữ liệu.
Các lỗi tải xuống cần chính sách
Một crawler nên định nghĩa hành vi bảo thủ cho các tệp bị thiếu, không thể truy cập, sai định dạng, hoặc tạm thời không có sẵn và tuân theo các tiêu chuẩn phù hợp và danh tính đã công bố của nó.
Các giai đoạn này có thể chồng chéo, lặp lại, hoặc được xử lý bởi các hệ thống khác nhau. Kế hoạch trích xuất do đó nên theo dõi chuỗi yêu cầu và trạng thái thực tế thay vì giả định rằng một sự kiện tải trang đại diện cho toàn bộ vòng đời. Các công cụ phát triển trình duyệt rất hữu ích vì chúng đặt tài liệu, mạng, lưu trữ và chế độ runtime bên cạnh nhau.
Các Hình Thức Chính và Các Khái Niệm Liên Quan
Các sự phân biệt sau đây ngăn ngừa các lỗi loại phổ biến. Chúng cũng giúp các nhóm chọn một bộ phân tích, khách hàng HTTP, trình duyệt, lập lịch, hoặc chính sách thu thập cho công việc.
| Khái niệm | Nó đại diện cho cái gì | Sử dụng điển hình |
|---|---|---|
| robots.txt | Kiểm soát các URL mà các tác nhân tuân thủ yêu cầu | Quản lý thu thập thông tin cấp máy chủ |
| Thẻ meta Robots | Kiểm soát lập chỉ mục và trình bày cho một trang HTML | Chỉ thị tìm kiếm cấp trang |
| X-Robots-Tag | Gửi các chỉ thị lập chỉ mục trong tiêu đề HTTP | Tài nguyên HTML và không phải HTML |
| Xác thực | Ngăn chặn truy cập trái phép | Nội dung riêng tư hoặc nhạy cảm |
Một nhãn chỉ hữu ích khi nó dự đoán hành vi. Nếu hai tuyến đường trên cùng một trang web trả về dữ liệu thông qua các lớp khác nhau, hãy xem chúng như là các bề mặt trích xuất khác nhau ngay cả khi nhóm sản phẩm mô tả chúng bằng một thuật ngữ kiến trúc.
Tại sao điều này quan trọng cho Web Scraping và Thu thập Dữ liệu
Việc thu thập trên web thất bại một cách lặng lẽ khi nó đọc sai lớp. Một trình phân tích có thể trả về HTML hợp lệ mà thiếu các bản ghi mục tiêu. Một trình duyệt có thể hiển thị một giao diện thuyết phục trong khi một yêu cầu cần thiết bị từ chối. Một chuỗi có thể trả về các lô đầy đủ trong khi lặp lại cùng một bản ghi. Các kiểm tra dưới đây liên kết robots.txt với chất lượng dữ liệu thay vì sở thích công cụ.
Kiểm tra mọi máy chủ trước
Lấy và phân tích tệp robots đúng trước khi thu thập máy chủ đó. Lưu cache nó trong một thời gian hợp lý và làm mới theo chính sách của trình thu thập.
Ghi lại quy tắc đã khớp
Đối với mỗi URL bị bỏ qua, lưu nhóm user-agent và quy tắc đã gây ra quyết định. Điều này làm cho các quyết định tuân thủ có thể kiểm tra được.
Tách biệt khám phá khỏi việc lấy dữ liệu
Một sơ đồ trang hoặc liên kết có thể tiết lộ một URL không được phép, nhưng việc khám phá không cấp quyền yêu cầu nó. Giữ nó ra khỏi hàng đợi lấy dữ liệu.
Kết hợp với tốc độ
Một con đường được phép không phải là một lời mời gửi lưu lượng không giới hạn. Áp dụng đồng thời bảo thủ và kiểm soát tốc độ cùng với các quy tắc đường dẫn.
Một trình duyệt là một tùy chọn trong cây quyết định đó. Trang sản phẩm Scrapeless Scraping Browser mô tả bề mặt trình duyệt được quản lý, trong khi tài liệu Scraping Browser getting-started bao gồm các tham số kết nối và phiên làm việc. Sử dụng hiển thị trình duyệt chỉ cho các trạng thái cần thực thi trình duyệt, và giữ các con đường lấy và phân tích đơn giản cho nội dung đã có sẵn trong các phản hồi.
Quy trình Chẩn đoán Thực tiễn
Một chẩn đoán đáng tin cậy bắt đầu với việc so sánh, không phải mã tự động. Bảo tồn phản hồi đầu tiên, quan sát giao diện trực tiếp, và kết nối mỗi trường mục tiêu với sự kiện hoặc tài nguyên tạo ra nó.
- Giải quyết nguồn gốc chính xác, bao gồm giao thức, tên miền, và cổng, sau đó yêu cầu /robots.txt mà không làm theo một quy tắc từ một máy chủ khác.
- Xác định mã thông báo user-agent thực sự của trình thu thập và chọn nhóm áp dụng nhất. Đừng giả vờ là một trình thu thập khác để có được một chính sách khác.
- Chuẩn hóa đường dẫn URL để khớp mà không thay đổi ngữ nghĩa. Các chuỗi truy vấn và ký tự được mã hóa yêu cầu xử lý nhận thức giao thức.
- Kiểm tra các đường dẫn được phép, không được phép, và trùng lặp đại diện. Giữ các tấm cho các trường hợp biên như giá trị trống, ký tự đại diện, và sự cho phép rõ ràng.
- Ghi lại quyết định trước khi điều hướng và ngăn chặn các tương tác trình duyệt hạ lưu vượt vào một con đường không được phép qua các liên kết, chuyển hướng, hoặc hành động biểu mẫu.
Tài liệu kết quả như một hợp đồng trích xuất nhỏ: mẫu URL mục tiêu, ngữ cảnh công cộng, lớp nguồn, điều kiện sẵn sàng, bộ chọn hoặc trường phản hồi, khóa duy nhất, quy tắc tiếp tục, quy tắc kết thúc, và kiểm tra xác thực. Hợp đồng này bền hơn một kịch bản chứa cùng giả định mà không gọi tên chúng.
Sử dụng bằng chứng từ tài liệu kỹ thuật chính khi định nghĩa hợp đồng. Các nền tảng liên quan cho chủ đề này bao gồm RFC 9309 Robots Exclusion Protocol Giới thiệu robots.txt của Google. Các nguồn đó mô tả hành vi nền tảng và giao thức; hành vi sống của trang mục tiêu vẫn cần được quan sát riêng.
Những Sai lầm Thông thường
Hầu hết các thất bại xung quanh robots.txt đến từ việc thay thế một tín hiệu thuận tiện cho trạng thái thực tế mà quy trình cần. Các sai lầm dưới đây có thể trả về kết quả có vẻ hợp lý, điều này làm cho chúng nguy hiểm hơn một lỗi rõ ràng.
- Sử dụng robots.txt để bảo vệ bí mật phơi bày tên đường dẫn mà không thực thi kiểm soát truy cập.
- Giả định rằng không cho phép có nghĩa là không chỉ mục làm nhầm lẫn việc thu thập với lập chỉ mục.
- Áp dụng tệp của một máy chủ cho tất cả các miền phụ có thể hoặc khóa quá mức hoặc yêu cầu các trang mà một máy chủ khác không cho phép.
- Không chú ý đến chuyển hướng và tài nguyên nhúng có thể cho phép một trình duyệt tự động yêu cầu các đường dẫn bên ngoài phạm vi dự định.
- Đối xử với một tệp bị thiếu như câu hỏi tuân thủ duy nhất thì bỏ qua các điều khoản, pháp luật, tải máy chủ, và độ nhạy cảm của dữ liệu.
Bảo vệ chống lại những thất bại này với các xác nhận cấp độ nội dung. Yêu cầu một container đã biết, ít nhất một khóa ổn định khi kết quả được mong đợi, không có khóa trùng lặp trong một lô, thứ tự nhất quán nơi thứ tự có ý nghĩa, và một trạng thái trống hoặc kết thúc đã được công nhận. Lưu trữ đủ ngữ cảnh để tái tạo một kết quả đáng ngờ mà không ghi lại thông tin xác thực hoặc dữ liệu cá nhân.
Những Thực Hành Tốt Nhất cho Quy Trình Duy Trì
Ưu tiên nghĩa ổn định hơn vị trí trực quan. Các bộ chọn và quy tắc nên mô tả vai trò của một giá trị, không phải vị trí tạm thời của nó trong một bố cục. Khi một phản hồi có cấu trúc là nguồn công cộng có thẩm quyền được sử dụng bởi trang, hãy bảo tồn ánh xạ trường liên quan và xác thực nó với nhãn đã hiển thị.
Làm cho trạng thái rõ ràng. Ghi lại địa phương, viewport, tuyến đường, giả định phiên công cộng, bộ lọc, thứ tự sắp xếp, và giá trị tiếp tục. Một giá trị mà không có trạng thái của nó có thể khó so sánh với một bản chụp sau đó.
Tách biệt khám phá, lấy dữ liệu, hiển thị và trích xuất. Mỗi giai đoạn có chi phí và chế độ thất bại khác nhau. Sự tách biệt cho phép một công việc chỉ hiển thị các URL cần thiết, xử lý lại các phản hồi đã lưu mà không có lưu lượng mới, và xem xét các bản ghi chưa hoàn chỉnh trước khi chúng vào các hệ thống hạ lưu.
Sử dụng công việc có hạn. Xác định số trang tối đa, hành động cuộn, yêu cầu hoạt động và bản ghi cho mỗi lần chạy. Giới hạn bảo vệ cả dịch vụ mục tiêu và hệ thống thu thập khi một vòng kiểm soát tiếp theo, con trỏ lặp lại hoặc một trang tạo ra một không gian thu thập không mong muốn.
Tôn trọng nhà xuất bản và người dùng. Kiểm tra robots.txt khi áp dụng, tuân theo điều khoản và luật, chỉ thu thập các trường công khai cần thiết cho mục đích đã xác định, tránh các khu vực riêng tư hoặc bị hạn chế, và giữ số lượng yêu cầu trong một giới hạn bảo thủ. Truy cập kỹ thuật không giống như quyền truy cập cho mọi sử dụng.
Kết luận
Robots.txt là mô hình hoạt động hữu ích nhất: xác định nơi dữ liệu tồn tại, quan sát cách trạng thái đó được sản xuất, và chọn phương pháp thu thập nhỏ nhất có thể tái hiện nó. Quy trình làm việc mạnh mẽ nhất so sánh nguồn và trạng thái đã được xử lý, theo các tín hiệu tiếp tục rõ ràng, và xác thực các bản ghi với các khóa bền vững.
Bắt đầu với một URL đại diện và viết hợp đồng trích xuất trước khi mở rộng. Bước nhỏ đó phơi bày thời gian, định tuyến, phân trang và giả định chính sách ẩn trong khi chúng vẫn rẻ để khắc phục. Mở rộng chỉ sau khi quy trình làm việc có thể giải thích tại sao mỗi bản ghi là hoàn chỉnh và mỗi trường đến từ đâu.
Sẵn sàng kiểm tra các trang được điều khiển bởi JavaScript?
Sử dụng Trình duyệt Scraping Không Giới hạn khi một trang công khai yêu cầu thực thi trình duyệt, tương tác hoặc kiểm tra trạng thái đã được xử lý.
Bắt đầu miễn phí →Câu hỏi thường gặp
robots.txt là gì theo cách đơn giản?
robots.txt là một tệp văn bản cấp gốc thông báo cho các trình thu thập thông minh tuân thủ các đường dẫn URL mà họ có thể hoặc không thể yêu cầu.
robots.txt có làm cho một trang trở nên riêng tư không?
Không. Đây là một hướng dẫn thu thập tình nguyện, không phải kiểm soát truy cập. Sử dụng xác thực và ủy quyền cho nội dung riêng tư.
Disallow có loại bỏ một trang khỏi kết quả tìm kiếm không?
Không một cách đáng tin cậy. Disallow ngăn cản thu thập, vì vậy trình thu thập có thể không thể đọc chỉ thị noindex trên trang. Sử dụng các điều khiển lập chỉ mục được hỗ trợ hoặc hạn chế quyền truy cập.
Có nên một trình thu thập tôn trọng robots.txt không?
Một trình thu thập có trách nhiệm nên tự nhận diện, kiểm tra tệp áp dụng, tôn trọng các quy tắc của nó, và cũng tôn trọng các điều khoản, yêu cầu pháp lý và khả năng máy chủ.