NHẬN tiêu đề từ python yêu cầu

Chà, khi bạn gửi yêu cầu đến máy chủ, bạn không chỉ nói. 'Này, cho tôi thông tin đó, làm ơn'. Bạn cũng đang cung cấp thông tin về chính yêu cầu – thông tin, chẳng hạn như mã hóa và ngôn ngữ của phản hồi dự kiến, độ dài và loại dữ liệu được cung cấp, người thực hiện yêu cầu, v.v. Những mẩu thông tin này, được gọi là tiêu đề, nhằm giúp cho việc liên lạc trên web trở nên dễ dàng và đáng tin cậy hơn vì máy chủ có ý tưởng tốt hơn về cách phản hồi

Được chứ. Nhưng câu hỏi vẫn còn - các tiêu đề này được chỉ định như thế nào?

Chà, mọi loại thông tin tiêu đề đều được chứa trong trường tiêu đề được tiêu chuẩn hóa. Hai trong số các trường tiêu đề phổ biến nhất là 'Tác nhân người dùng' và 'cookie'. Chúng ta hãy xem xét sâu hơn về những

Tiêu đề yêu cầu. Chuỗi tác nhân người dùng là gì?

Khi một phần mềm gửi yêu cầu, nó thường xác định chính nó, loại ứng dụng, hệ điều hành, nhà cung cấp phần mềm hoặc phiên bản phần mềm bằng cách gửi một chuỗi nhận dạng đặc trưng. Chuỗi này được gọi là “chuỗi tác nhân người dùng”. Bạn có thể coi nó như một thẻ ID chứa một số thông tin cơ bản

Tất cả các trình duyệt, cũng như một số trình thu thập thông tin và bot phổ biến, chẳng hạn như 'google bot', đều có một 'chuỗi tác nhân người dùng' duy nhất mà chúng tự xác định bằng

Vì vậy, làm thế nào điều này liên quan đến chúng tôi, những người dọn dẹp?

Chà, rất nhiều công ty thiết lập máy chủ của họ theo cách cho phép họ xác định trình duyệt mà khách hàng đang sử dụng. Trên thực tế, hầu hết các trang web có thể trông hơi khác một chút trong Chrome, Firefox, Safari, v.v. Dựa trên trình duyệt, một phiên bản cụ thể của trang web được gửi tới máy khách để có hiệu suất tính toán và hình ảnh tối ưu. Tuy nhiên, điều này có thể trở thành một vấn đề đối với chúng tôi nếu chúng tôi không cung cấp 'chuỗi tác nhân người dùng' thích hợp

Có hai điều có thể xảy ra trong trường hợp đó
Trước hết, máy chủ có thể được thiết lập để gửi một biến thể mặc định của trang nếu nó không nhận ra tác nhân người dùng

Trong tình huống này, HTML chúng tôi đang xem trong trình duyệt của mình có thể khác với những gì chúng tôi nhận được dưới dạng phản hồi. Tuy nhiên, giải pháp trong trường hợp này khá đơn giản – xuất phản hồi HTML sang tệp cục bộ và kiểm tra tệp đó, thay vì phiên bản trình duyệt

Một vấn đề nghiêm trọng hơn phát sinh khi máy chủ quyết định chặn tất cả lưu lượng truy cập không được công nhận

Trong trường hợp đó, để tiếp tục cạo, chúng tôi cần cung cấp một tác nhân người dùng hợp pháp. May mắn thay, chuỗi tác nhân người dùng của tất cả các trình duyệt đều có sẵn công khai trên internet. Như vậy, chúng ta có thể dễ dàng giả làm một trình duyệt

Hãy xem cách thực hiện việc này trong Python bằng gói 'yêu cầu'

Kết hợp các tiêu đề khác nhau bằng cách sử dụng 'yêu cầu' thực sự là một công việc rất đơn giản. Tất cả những gì chúng ta phải làm là cung cấp chúng ở định dạng từ điển cho tham số 'tiêu đề'

Ví dụ: giả sử chúng tôi muốn gửi yêu cầu GET tới YouTube, giả vờ là khách hàng sử dụng Chrome. Đầu tiên chúng ta cần tìm chuỗi User-Agent của Chrome. Một tìm kiếm nhanh trên Google đã mang lại cho chúng tôi chuỗi này

"Mozilla/5. 0 (Windows NT 10. 0; . 36 (KHTML, như Gecko) Chrome/74. 0. 3729. 169 Safari/537. 36"

Được chứ. Chúng tôi có thể lưu nó trong từ điển với tên trường 'Tác nhân người dùng'

NHẬN tiêu đề từ python yêu cầu

Bây giờ, chúng ta có thể thực hiện yêu cầu GET bằng cách sử dụng phương thức ‘get()’ thông thường của gói. URL của trang web chúng tôi muốn kết nối được truyền dưới dạng tham số. Thông thường, đó sẽ là tất cả.

NHẬN tiêu đề từ python yêu cầu

Tuy nhiên, để kết hợp các tiêu đề yêu cầu, chúng tôi có thể thêm chúng ở dạng từ điển vào tham số 'tiêu đề' bổ sung. Trong trường hợp của chúng tôi, chúng tôi đã lưu từ điển trong biến 'tiêu đề', vì vậy chúng tôi chuyển nó vào tham số

NHẬN tiêu đề từ python yêu cầu

Đó là nó. Yêu cầu này hiện chứa trường tiêu đề 'Tác nhân người dùng'

Và đây là mã đầy đủ

NHẬN tiêu đề từ python yêu cầu

Bằng cách thêm các trường khác nhau vào từ điển của chúng tôi, chúng tôi có thể kết hợp các tiêu đề khác nhau vào yêu cầu

Xử lý các tiêu đề yêu cầu. Còn bánh quy thì sao?

Nếu xử lý các tiêu đề yêu cầu đơn giản như vậy, thì cookie có gì đặc biệt?

Chà, cookie HTTP là một loại tiêu đề yêu cầu đặc biệt đại diện cho một phần dữ liệu nhỏ được gửi từ một trang web và được lưu trữ trên máy tính của người dùng. Nó khác với các tiêu đề khác, vì chúng tôi không phải là người chọn nó – đó là trang web cho chúng tôi biết cách đặt trường này. Sau đó, cookie có thể được gửi cùng với các yêu cầu tiếp theo của khách hàng

Cookie được thiết kế để trở thành một cơ chế đáng tin cậy giúp các trang web ghi nhớ thông tin trạng thái, chẳng hạn như các mặt hàng được thêm vào giỏ hàng trong cửa hàng trực tuyến hoặc để ghi lại hoạt động duyệt web của người dùng

Chúng cũng có thể được sử dụng để ghi nhớ các mẩu thông tin tùy ý mà người dùng đã nhập trước đó vào các trường biểu mẫu, chẳng hạn như tên, địa chỉ, mật khẩu và số thẻ tín dụng

Cookie thực hiện các chức năng thiết yếu trong web hiện đại

Có lẽ điều quan trọng nhất là cookie xác thực. Đây là phương pháp phổ biến nhất được các máy chủ web sử dụng để biết liệu người dùng có đăng nhập hay không và họ đăng nhập bằng tài khoản nào. Về cơ bản, điều này có nghĩa là bạn không bắt buộc phải đăng nhập mỗi khi mở hoặc tải lại trang

Cookie được triển khai hơi khác so với 'tác nhân người dùng', vì các trang web thường cho chúng tôi biết cách đặt chúng trong lần đầu tiên chúng tôi truy cập một trang

Mặc dù vậy, gói 'yêu cầu' tuyệt vời một lần nữa tiết kiệm thời gian với lớp phiên của nó

Chúng ta có thể mở một phiên mới bằng lệnh này

NHẬN tiêu đề từ python yêu cầu

Lưu ý rằng chúng tôi gán phiên cho một biến. Sau này, chúng ta có thể thực hiện các yêu cầu thông qua biến này. Mọi yêu cầu như vậy trong phiên đó sẽ tự động kết hợp các cookie liên tục. Chúng tôi không phải làm bất cứ điều gì. Sau khi hoàn thành, chúng ta phải đóng phiên. Đây là một mã ví dụ.

NHẬN tiêu đề từ python yêu cầu

Chỉ cần nhớ rằng yêu cầu phải được thực hiện thông qua biến phiên. Bạn có thể tìm hiểu thêm về điều đó trong tài liệu 'yêu cầu' chính thức tại đây

Bây giờ bạn đã thêm vũ khí tiêu đề yêu cầu vào kho vũ khí quét web của mình. Hãy cho chúng tôi biết bạn đã triển khai nó như thế nào trong thực tế của mình trong phần bình luận bên dưới

Mong muốn trở thành một Web Scraping Pro?

Khóa học là một phần của Chương trình Khoa học Dữ liệu 365. Bạn có thể khám phá chương trình giảng dạy hoặc đăng ký miễn phí 12 giờ nội dung video từ cơ bản đến nâng cao bằng cách nhấp vào nút bên dưới

Tiêu đề trong yêu cầu Python là gì?

Tiêu đề HTTP cho phép máy khách và máy chủ chuyển thông tin bổ sung bằng yêu cầu hoặc phản hồi HTTP . Tất cả các tiêu đề không phân biệt chữ hoa chữ thường, các trường tiêu đề được phân tách bằng dấu hai chấm, các cặp khóa-giá trị ở định dạng chuỗi văn bản rõ ràng.

tiêu đề trong yêu cầu là gì?

Tiêu đề yêu cầu là tiêu đề HTTP có thể được sử dụng trong yêu cầu HTTP để cung cấp thông tin về ngữ cảnh yêu cầu để máy chủ có thể điều chỉnh phản hồi. For example, the Accept-* headers indicate the allowed and preferred formats of the response.

Raise_for_status là gì?

raise_for_status() trả về đối tượng HTTPError nếu xảy ra lỗi trong quá trình . Nó được sử dụng để gỡ lỗi mô-đun yêu cầu và là một phần không thể thiếu trong các yêu cầu Python. Các yêu cầu Python thường được sử dụng để tìm nạp nội dung từ một URI tài nguyên cụ thể.