User Agent là gì? Tiêu đề, Trình duyệt và Danh tính Bot

User Agent là gì?

Trình duyệt Scrapeless Agent cung cấp các phiên trình duyệt đám mây với tùy chọn cấu hình chuỗi User-Agent và các cài đặt trình duyệt khác được hỗ trợ.

Một user agent là phần mềm khách hàng hành động thay mặt cho người dùng, chẳng hạn như trình duyệt hoặc một khách hàng HTTP tự động. Tiêu đề User-Agent là một trường yêu cầu mô tả khách hàng đó. Mọi người thường sử dụng “user agent” để chỉ chuỗi tiêu đề, nhưng phần mềm và mô tả tự của nó là những thứ khác nhau.

Sự phân biệt đó có ý nghĩa trong việc lấy dữ liệu web. Thay đổi một tiêu đề thay đổi một tuyên bố về khách hàng. Nó không thay thế động cơ trình bày, không đặt lại phiên, hoặc chứng minh ai đã gửi yêu cầu. Xem chuỗi này như một phần của môi trường khách hàng đã được tài liệu hóa.

TL;DR

  • Một user agent là phần mềm khách hàng. Trình duyệt và khách hàng tự động đều có thể hành động như là user agents.
  • Tiêu đề User-Agent là một mô tả tự. Máy chủ không thể sử dụng chuỗi đó đơn độc như chứng cứ danh tính.
  • Phát hiện trình duyệt có giới hạn. Hỗ trợ tính năng nên được kiểm tra trực tiếp khi có thể.
  • Môi trường nhất quán làm cho việc quan sát dễ so sánh hơn. Ghi lại các cài đặt trình duyệt, ngôn ngữ và khu vực liên quan với dữ liệu đã thu thập.

Khách hàng và Tiêu đề User-Agent của nó

Một user agent gửi yêu cầu và tiêu thụ phản hồi thay mặt cho người dùng. Một trình duyệt có thể hiển thị một tài liệu và chạy các tập lệnh trang, trong khi một khách hàng đơn giản có thể chỉ nhận lại byte phản hồi. Cả hai đều là khách hàng, ngay cả khi chúng cung cấp các khả năng khác nhau.

Tiêu đề định nghĩa user-agent HTTP cung cấp sự phân biệt nền tảng. Trường User-Agent có thể chứa các định danh sản phẩm và nhận xét mô tả phần mềm gửi. Một trang web có thể sử dụng thông tin đó để ghi lại hoặc xử lý tính tương thích, nhưng trường đó được cung cấp bởi khách hàng.

Một bản ghi gỡ lỗi hữu ích phân tách khách hàng thực sự ra khỏi chuỗi mà nó gửi. Nếu một tập lệnh báo cáo nó là trình duyệt máy tính để bàn nhưng không bao giờ chạy JavaScript, đích đến vẫn có thể nhận được một tiêu đề giống trình duyệt cùng với một tương tác chỉ HTTP. Sự khác biệt đó có thể giải thích tại sao một lượt xem trang thành công trong trình duyệt tương tác trong khi một bộ phân tích chỉ thấy mã đánh dấu ban đầu.

Bắt đầu chẩn đoán bằng cách hỏi khách hàng nào đã thực hiện yêu cầu, tiêu đề nào nó đã gửi và đại diện nào đã quay lại. Chuỗi đó thông tin hơn là chọn một chuỗi ngẫu nhiên từ danh sách user-agent dài.

Cách đọc chuỗi User-Agent trình duyệt

Một chuỗi user-agent trình duyệt thường chứa nhiều mã sản phẩm và mã tương thích hơn là một tên trình duyệt sạch sẽ. Các quy ước tương thích lịch sử có nghĩa là một chuỗi hiện đại có thể đề cập đến những cái tên không xác định được danh sách trình duyệt thực tế của nó.

Cú pháp và ví dụ về tiêu đề User-Agent cho thấy tại sao việc so sánh con chuỗi ngây thơ là không đáng tin cậy. Một mã có thể còn lại trong một chuỗi vì các trang web trước đây đã mong đợi nó. Đối xử với mỗi mã như một thành phần cài đặt riêng biệt dẫn đến các kết luận không chính xác.

Đối với phân tích định kỳ, hãy giữ chuỗi thô và ghi lại gia đình trình duyệt đã phân tích một cách riêng biệt. Nếu bạn sử dụng một bộ phân tích, hãy giữ phiên bản hoặc tập quy tắc của nó để các thay đổi sau này có thể được giải thích. Một bản đếm bảng điều khiển thay đổi sau khi cập nhật bộ phân tích có thể mô tả sự phân loại đã thay đổi hơn là những khách hàng đã thay đổi.

Đừng thu thập nhiều chi tiết khách hàng hơn mức cần thiết cho nhiệm vụ của bạn. Một cuộc điều tra về việc trình bày có thể cần một gia đình trình duyệt và danh mục nền tảng. Một kiểm tra thời gian hoạt động đơn giản có thể chỉ cần tên của khách hàng giám sát của bạn. Giữ cho mục đích hẹp giúp giảm việc thu thập danh tính không cần thiết.

Tiêu đề, JavaScript và Gợi ý Khách hàng

Danh tính trình duyệt có thể xuất hiện thông qua các tiêu đề yêu cầu và API phía trang, và những bề mặt đó không tạo thành một chứng nhận danh tính đáng tin cậy. Các tập lệnh trang có thể đọc navigator.userAgent, trong khi máy chủ nhìn thấy tiêu đề yêu cầu. Những gợi ý khách hàng do trình duyệt cung cấp cung cấp một bề mặt khác mà được hỗ trợ.

Thuộc tính navigator.userAgent có những giới hạn đáng tin cậy rõ ràng. Một trình duyệt có thể giảm chi tiết trong chuỗi báo cáo, và chuỗi có thể được thay đổi. Một quyết định tính năng hoàn toàn dựa vào một phiên bản được tuyên bố có thể do đó phân loại sai một khách hàng.

Đối với việc triển khai trang web, hãy thích kiểm tra xem liệu tính năng yêu cầu có tồn tại hay không hơn là dự đoán sự hỗ trợ từ một cái tên. Đối với việc thu thập dữ liệu, hãy ghi lại môi trường mà bạn thực sự đã tạo ra và kiểm tra nội dung mà nó sản xuất. Một thiết bị di động được tuyên bố không đảm bảo một vùng nhìn di động; thay đổi tiêu đề không thay đổi mọi đặc điểm trình bày.

Giữ cho những khác biệt có thể quan sát được. Nếu một đích đến trả về các kiểu dáng khác nhau, hãy lưu đủ bằng chứng trang để xác định sự biến thể. Tránh đoán rằng sự không khớp đến từ trường User-Agent khi ngôn ngữ, cookie, địa lý hoặc một thí nghiệm có thể giải thích điều đó.

Tại sao các trang web phản hồi khác nhau với khách hàng

Một trang web có thể thay đổi nội dung của nó dựa trên thông tin khách hàng, nhưng sự biến đổi của user-agent chỉ là một nguyên nhân có thể. Một số trang cung cấp mã đánh dấu tương thích, điều hướng theo thiết bị, hoặc xử lý đặc biệt cho các bot đã được xác định. Những trang khác sử dụng CSS phản hồi với cùng một tài liệu.

Giả sử một catalog công cộng hiển thị các menu khác nhau trong các kiểu dáng máy tính và di động. Một bộ chọn nhắm vào menu máy tính có thể thất bại trong một vùng nhìn hẹp ngay cả khi tiêu đề không thay đổi. Kiểm tra tài liệu đã được hiển thị và các điều kiện màn hình thực tế trước khi thay thế bộ chọn hoặc thay đổi danh tính khách hàng.

Một so sánh được kiểm soát thay đổi một điều kiện liên quan một lần một. Giữ cho URL, trạng thái tài khoản, ngôn ngữ, khu vực và mục đích thu thập cố định khi có thể. Sau đó so sánh danh tính trang đã được trả về và các trường yêu cầu. Cách tiếp cận này làm cho các khác biệt có thể quy cho đó thay vì trộn lẫn nhiều thay đổi cấu hình vào một lần chạy.

Đối với các quan sát từ phía máy chủ, giữ nguyên URL cuối cùng và loại phản hồi. Một chuyển hướng đến trang đăng nhập có thể trông giống như một phản hồi user-agent không mong đợi nếu pipeline của bạn chỉ ghi lại trạng thái. Nội dung tự nó là bằng chứng cho trải nghiệm nào đã được cung cấp.

Các tác nhân người dùng và sự nhất quán trong phiên quét

Các phiên thu thập dữ liệu cần một môi trường mạch lạc vì các yêu cầu liên quan có thể phụ thuộc vào trạng thái thiết lập trước đó. Một thay đổi tiêu đề ở giữa một quy trình có thể thêm biến thể khiến việc giải thích lỗi thu thập dữ liệu trở nên khó khăn hơn.

Chọn cấu hình khách hàng phù hợp với nhiệm vụ được ủy quyền, sau đó giữ cho nó ổn định cho nhiệm vụ đó. Ghi lại các thay đổi một cách có chủ đích. Nếu bạn đang đánh giá các chế độ xem máy tính để bàn và di động, hãy sử dụng các ngữ cảnh riêng biệt và nhãn rõ ràng cho mỗi quan sát thay vì xen kẽ mô tả bên trong cùng một chuỗi duyệt web.

Khi một quy trình làm việc cần nội dung đã được hiển thị, Trình duyệt Đại lý không thể thu thập dữ liệu cung cấp lớp thực thi trình duyệt. Nó là tùy chọn cấu hình dấu vân tay trình duyệt bao gồm một cài đặt User-Agent. Các tùy chọn và giới hạn được hỗ trợ nên hướng dẫn cấu hình; một chuỗi tùy chỉnh không nên được coi như một lời hứa rằng mọi thuộc tính của trình duyệt sẽ thay đổi cùng với nó.

Các liên quan tuỳ chỉnh dấu vân tay trình duyệt bài viết cung cấp bối cảnh bổ sung. Giữ tài liệu hiện tại làm quyền lực cho hành vi tham số, đặc biệt là nơi một bài viết cũ mô tả khả năng rộng hơn so với giao diện hiện tại.

So sánh các tín hiệu danh tính của khách hàng

Các tín hiệu khác nhau của khách hàng mô tả các phần khác nhau của một yêu cầu hoặc môi trường duyệt web. Giữ cho những vai trò đó tách biệt giúp bạn giải thích một sự khác biệt mà không làm quá tải trường User-Agent.

Tín hiệuNó mô tảNó không chứng minh điều gì
Tiêu đề User-AgentMô tả phần mềm được khách hàng công bố.Danh tính của người gửi hoặc hỗ trợ tính năng thực tế.
Khung nhìnCác kích thước được sử dụng để bố trí một trang trình duyệt.Hệ điều hành hoặc vị trí mạng.
Cài đặt ngôn ngữSở thích về ngôn ngữ mà khách hàng đã yêu cầu hoặc công khai.Quốc tịch hoặc vị trí vật lý của người dùng.
IP thoátĐịa chỉ mạng hiển thị cho điểm đến.Môi trường trình duyệt hoàn chỉnh.
Bánh quyTrạng thái được lưu và gửi theo các quy tắc của trình duyệt.Một địa chỉ nhất quán hoặc quyền thu thập dữ liệu.

Những tín hiệu này có thể ảnh hưởng đến nội dung một cách độc lập. Một sự không khớp giá khu vực có thể phát sinh từ egress hoặc một cookie khu vực đã lưu, ngay cả khi chuỗi user-agent là giống hệt nhau. Giữ lại bối cảnh tối thiểu cần thiết để so sánh các quan sát, sau đó kiểm tra lớp liên quan.

Xác định Trình thu thập thông tin của riêng bạn một cách có trách nhiệm

Một bot mà bạn vận hành nên sử dụng một danh tính hỗ trợ các quy tắc của trang web và thỏa thuận thu thập dữ liệu của bạn. Đối với một cuộc kiểm toán trang web sở hữu hoặc một nguồn dữ liệu đã thỏa thuận, một tên khách hàng mô tả và một cơ chế liên hệ có thể làm cho việc phối hợp hoạt động trở nên dễ dàng hơn.

Đừng giả định rằng việc tuyên bố danh tính của một công cụ tìm kiếm cấp phép cho các quyền được định sẵn cho công cụ đó. Các quy tắc của robot được đánh giá dựa trên danh tính của trình thu thập, và chỉ riêng văn bản danh tính không thiết lập rằng quy trình của bạn là trình thu thập được chỉ định. Sử dụng phạm vi nhiệm vụ thực tế của bạn khi quyết định những đường dẫn nào để lấy dữ liệu.

Giữ một hồ sơ hoạt động nhỏ: mô tả khách hàng, các máy chủ được phép, mục đích, chủ sở hữu và các điều kiện cần dừng lại. Nếu một trang web yêu cầu thay đổi cấu hình, hồ sơ sẽ cho bạn biết quy trình nào cần cập nhật. Điều này đặc biệt hữu ích khi nhiều nhóm chia sẻ cơ sở hạ tầng thu thập.

Chi phí thực thi trình duyệt cũng thuộc về thiết kế. So sánh các giá Scrapeless hiện tại với công việc mà nhiệm vụ của bạn yêu cầu. Việc thay đổi tiêu đề là không tốn kém, nhưng nó không thể thay thế một trình duyệt khi các trường chỉ tồn tại sau khi các tập lệnh trang được chạy.

Kết luận

Một user agent là client thực hiện yêu cầu; header User-Agent là một mô tả mà client cung cấp. Sử dụng sự phân biệt này để chẩn đoán các vấn đề về khả năng tương thích và thu thập mà không giả định rằng chuỗi điều khiển toàn bộ môi trường.

Đối với một quy trình thu thập dữ liệu, xác định khách hàng thực tế, giữ các cài đặt liên quan ổn định và xác minh trang được trả về. Khi một trang web thay đổi phản hồi của nó, hãy so sánh các bằng chứng trước khi thay đổi cài đặt danh tính. Một môi trường được ghi chú sẽ cung cấp cho bạn các quan sát có thể tái tạo và một giải thích rõ ràng về những gì dữ liệu thu thập được đại diện.

Kiểm tra nội dung web trong một môi trường trình duyệt đã xác định

Sử dụng Trình duyệt Đại lý Không Rác cho các quy trình làm việc được phép cần kết xuất JavaScript và cấu hình trình duyệt đã được ghi chép.

Đăng ký ngay 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

Liệu đại lý người dùng có giống như một trình duyệt không?

Một trình duyệt là một loại đại lý người dùng. Các khách hàng HTTP tự động và các trình thu thập thông tin cũng có thể hoạt động như các đại lý người dùng. Tiêu đề User-Agent mô tả phần mềm khách hàng nhưng không biến một khách hàng HTTP đơn giản thành một trình duyệt.

Liệu việc thay đổi User-Agent có thay đổi địa chỉ IP không?

Thay đổi tiêu đề User-Agent không thay đổi địa chỉ IP đầu ra. Cấu hình tiêu đề và định tuyến mạng là các điều khiển tách biệt. Chẩn đoán sự khác biệt nội dung bằng cách sử dụng yêu cầu thực tế và điều kiện trình duyệt.

Các trang web có thể tin tưởng vào chuỗi User-Agent không?

Các trang web không thể coi chuỗi User-Agent đơn lẻ là danh tính đã được xác thực hoặc đảm bảo hỗ trợ tính năng. Khách hàng cung cấp chuỗi, và các trình duyệt có thể giảm bớt hoặc thay đổi chi tiết của nó. Kiểm tra tính năng trực tiếp thì tốt hơn cho các quyết định tương thích.

Mỗi yêu cầu thu thập dữ liệu có nên sử dụng một đại lý người dùng khác nhau không?

Các yêu cầu thu thập dữ liệu nên sử dụng cấu hình phù hợp với nhiệm vụ của chúng, với sự nhất quán trong các hoạt động liên quan. Những thay đổi tùy ý có thể giới thiệu sự khác biệt về bố cục và làm khó khăn cho chẩn đoán. Kiểm tra các môi trường khách hàng khác nhau một cách có chủ đích thay vì ngẫu nhiên chúng mà không có lý do.

Tài liệu tham khảo