Phiên và cookie trong web Scraping

Cạo, Jan-24-20225 phút đọc

Bạn không thể bỏ qua Phiên và cookie trong lĩnh vực quét web. Hầu hết các ứng dụng web phụ thuộc vào phiên và cookie để ghi nhớ từng người dùng riêng biệt để cung cấp cho họ trải nghiệm người dùng tốt hơn.  Nhưng chính xác thì các phiên và cookie trong thế giới lập trình web là gì và chúng hoạt động như thế nào? Trong bài viết này, chúng tôi sẽ

Bạn không thể bỏ qua Phiên và cookie trong lĩnh vực quét web. Hầu hết các ứng dụng web phụ thuộc vào phiên và cookie để ghi nhớ từng người dùng riêng biệt để cung cấp cho họ trải nghiệm người dùng tốt hơn. 

Nhưng chính xác thì các phiên và cookie trong thế giới lập trình web là gì và chúng hoạt động như thế nào? Trong bài viết này, chúng tôi sẽ trả lời tất cả những câu hỏi đó trước khi chuyển sang cách bạn sử dụng các phiên và cookie trong việc quét web. Đầu tiên, chúng ta sẽ bắt đầu với các phiên.

Hãy đi sâu vào, folks!

Các phiên trên web là gì?

Nói một cách đơn giản hơn, một phiên chỉ đơn giản là một chuỗi các tương tác của người dùng giữa thiết bị của bạn và máy chủ mà nó kết nối. Thời lượng của một phiên có thể là từ thời điểm thiết bị thiết lập giao tiếp với máy chủ. Một phiên sau đó kết thúc khi người dùng hoàn thành kết nối với một ứng dụng web.

Mặt khác, có thể có các phiên mà bộ hẹn giờ gọi khi người dùng bắt đầu truy cập một trang web. Máy chủ web đặt các bộ hẹn giờ này trong một khoảng thời gian cụ thể và phiên hết hạn khi bộ hẹn giờ giảm bớt.

Một phiên có thể được chia thành:

  1. Trạng thái: Ít nhất một trong các bên lưu giữ thông tin liên quan đến thông tin liên lạc. Điều này có nghĩa là khi một máy khách thiết lập giao tiếp với máy chủ, nó sẽ phục vụ người dùng bằng cách truy xuất thông tin trên dữ liệu phiên trước đó.  
  2. Không trạng thái: Máy chủ không lưu dữ liệu của máy khách trên máy chủ trong phiên không trạng thái để dữ liệu được sử dụng trong phiên tiếp theo. Thay vào đó, máy khách lưu trữ dữ liệu phiên và chuyển nó đến máy chủ khi cần thiết. Điều này ngụ ý rằng khi khách hàng bắt đầu một phiên mới, nó không dựa trên dữ liệu được trao đổi trong phiên trước.

Hãy đi sâu hơn vào cách một phiên hoạt động để hiểu các khái niệm tốt hơn.

Các phiên hoạt động như thế nào?

Mặc dù có thể có nhiều loại phiên khác nhau, nhưng các nguyên tắc cơ bản mà chúng hoạt động vẫn giữ nguyên. Hãy bắt đầu với một loại phiên phổ biến, phiên HTTP.

Phiên HTTP

Khi thiết bị khách khởi tạo yêu cầu kết nối đến máy chủ thông qua trình duyệt web, máy chủ sẽ chấp nhận yêu cầu và trả về phản hồi bằng cách tạo phiên. Cùng với phản hồi, máy chủ cũng trả về ID phiên. Sau đó, khách hàng gửi thêm yêu cầu cùng với ID phiên và trình duyệt sẽ phản hồi sau đó. 

Toàn bộ quá trình tiếp tục cho đến khi người dùng chấm dứt.

Ví dụ điển hình về Phiên

Ví dụ cụ thể về các phiên bao gồm truy cập trang web Thương mại điện tử và thêm các mặt hàng vào giỏ hàng, điền vào biểu mẫu web, cuộn trang web và học sinh truy cập cổng web bằng cách đăng nhập vào đó để xem điểm của họ.

Sau đó, vào mỗi lần truy cập, máy chủ và máy khách trao đổi dữ liệu bằng ID phiên. Một thư mục tạm thời trên máy chủ lưu thông tin phiên như các trang bạn đã xem, thông tin đăng nhập người dùng, dữ liệu bạn đã chọn trên hộp kiểm hoặc danh sách thả xuống, các mục bạn đã thêm vào giỏ hàng, v.v.

Sau đó, những dữ liệu này được cung cấp cho mỗi trang bạn đã truy cập trên một trang web.

Trên một số trang web, các nhà phát triển web đặt phiên dựa trên bộ đếm thời gian. Mục tiêu chính của việc sử dụng bộ hẹn giờ là không khuyến khích người dùng thực hiện một hoạt động lý tưởng trong một thời gian dài. Sau đó, sau một thời gian chờ, các phiên như vậy hết hạn và máy chủ web bắt đầu một phiên mới cho bất kỳ tương tác nào khác.  

Sơ đồ dưới đây là một ví dụ về phiên.

Để cung cấp trải nghiệm người dùng độc đáo, cùng với một phiên, các trình duyệt sử dụng một khái niệm gọi là cookie. Hãy cùng tìm hiểu về nó trong phần tiếp theo.

Cookie là gì?

Khi một máy khách khởi tạo một yêu cầu với một máy chủ, nó sẽ tạo phiên và gửi phản hồi bằng cookie. Bây giờ, cookie là những mẩu dữ liệu nhỏ, bao gồm các trang bạn đã truy cập, dữ liệu tác nhân người dùng, thời gian bạn ở trên một trang web, dữ liệu cá nhân khác khi vào trang web và cookie mà bạn đã chấp nhận trước đó mà máy chủ tạo.

Máy chủ tạo dữ liệu này trong tệp dựa trên văn bản nhỏ và gửi nó đến máy khách. Sau đó, khách hàng lưu tệp cookie trong trình duyệt của người dùng. Sau đó, tại mỗi yêu cầu tiếp theo, khách hàng cũng gửi tệp cookie này. Sau đó, máy chủ truy xuất dữ liệu phiên thuộc về người dùng riêng biệt đó và gửi lại phản hồi cho máy khách. 

Quá trình được đề cập ở trên được minh họa trong sơ đồ dưới đây:

Ví dụ về kịch bản sử dụng cookie

Giả sử bạn đang điền vào biểu mẫu trực tuyến để mua sản phẩm. Sau đó, sau khi điền tất cả các chi tiết cá nhân của bạn và chọn mặt hàng vào giỏ hàng, bạn vô tình đóng cửa sổ trình duyệt trước khi thanh toán. 

Sau khi bạn mở lại cửa sổ đó, bạn sẽ nhận ra rằng bạn không phải nhập lại tất cả các chi tiết của mình và chọn lại mục. Bạn có thể tiếp tục từ nơi bạn đã rời đi. Tất cả điều này có thể là do sự kết hợp cookie-session mà bạn vừa học.

Như bạn có thể thấy, sự kết hợp cookie-phiên cải thiện trải nghiệm người dùng và các trang web sẽ không hiệu quả nếu không có chúng.

Cookie liên tục so với cookie phiên

Cookie phiên bị xóa khi bạn đóng trình duyệt và do đó nó không giữ lại bất kỳ thông tin nào trên thiết bị của bạn. Ngoài ra, nó không gửi bất kỳ thông tin nào ra khỏi thiết bị của bạn.

Ngược lại, cookie liên tục được lưu trữ trong đĩa cứng của bạn cho đến khi chúng hết hạn hoặc bạn xóa chúng. Những cookie này thu thập dữ liệu về lịch sử duyệt web của bạn, thời gian bạn ở trên một trang web cụ thể, các thiết bị bạn đã sử dụng để truy cập trang web, v.v.

Các trường hợp sử dụng cookie

Trong hầu hết các trường hợp, nhà phát triển web sử dụng cookie để cung cấp trải nghiệm được cá nhân hóa cho người dùng của họ. Tuy nhiên, chúng được biết đến nhiều nhất là được sử dụng bởi các trang web yêu cầu chủ đề tùy chỉnh và thông tin đăng nhập. Hơn nữa, nếu bạn đào sâu hơn nữa, bạn có thể nhận ra họ cũng tham gia vào việc quản lý và theo dõi phiên. Chúng ta hãy xem xét từng người trong số họ:

Quản lý phiên

Bạn đã biết rằng một phiên là một tương tác liên tục với một trang web cho đến khi người dùng chấm dứt hoặc bộ đếm thời gian chấm dứt phiên. Vì vậy, khi bạn bật cookie trên một trang web, chúng sẽ lưu trữ từng dữ liệu phiên này để người dùng không phải điền tất cả thông tin vào biểu mẫu trực tuyến hoặc thậm chí đăng nhập lại nếu bạn vô tình đóng cửa sổ trình duyệt. 

Do đó, tất cả các hành động này giúp dễ dàng duyệt web để bạn không phải thực hiện các tác vụ lặp đi lặp lại.

Theo dõi

Cookie cụ thể được gọi là cookie theo dõi, theo dõi người dùng trên nhiều trang web hoặc dịch vụ và thu thập dữ liệu. Các công ty sử dụng dữ liệu mà cookie theo dõi thu thập để tiếp thị trực tiếp, như quảng cáo được nhắm mục tiêu.

Các cookie theo dõi hoạt động bằng cách thả tệp văn bản vào trình duyệt trong khi xem trang web. Tệp văn bản này thu thập dữ liệu, bao gồm hoạt động của người dùng trên trang web, vị trí địa lý, lịch sử duyệt web và các xu hướng khác nhau mà khách hàng đã sử dụng để mua hàng.  

Mặc dù nó nằm ngoài phạm vi của bài viết để nêu rõ liệu việc sử dụng cookie mục tiêu có đạo đức hay không, tuy nhiên, nó chắc chắn có thể gây khó chịu cho người dùng. Nhưng người dùng có thể xóa các cookie này vì họ không bắt buộc phải xem các quảng cáo này.

Bạn chắc chắn có thể mở rộng về chủ đề này bằng cách tìm kiếm trên Google.

Tùy chọn được cá nhân hóa

Tất cả các bạn đều có sở thích cá nhân khi duyệt web. Chủ sở hữu trang web và nhà phát triển web hiểu điều này và đó là lý do tại sao họ sử dụng cookie cho sở thích được cá nhân hóa. Các tùy chọn được cá nhân hóa này bao gồm phân phối nội dung và bán dịch vụ cho người dùng dựa trên vị trí, ngôn ngữ, loại trình duyệt, phiên bản hệ điều hành và hơn thế nữa.

Các trang web có thể thay đổi nội dung của họ để cho phép mọi người lướt qua trang một cách dễ dàng.

Cookie khác với một phiên như thế nào?

Bây giờ chúng tôi hy vọng bạn đã hiểu được các phiên và cookie. Cookie lưu trữ thông tin về thông tin duyệt web của người dùng và các dữ liệu cá nhân khác trên máy tính của người dùng. Ngược lại, máy chủ tạo một phiên giữ dữ liệu tạm thời và chấm dứt khi người dùng đóng tương tác với trang web.

Mặt khác, cookie nằm trên máy tính của bạn trong khi hết hạn hoặc người dùng xóa nó.

Bảng sau đây tóm tắt thêm sự khác biệt hơn nữa:

Phiên so với Cookie

Các phiên và cookie được sử dụng như thế nào trong việc quét web?

Buổi

Khi nói đến các phiên trong web scraping, proxy hoạt động như một cầu nối. Ví dụ: khi bạn kết nối với một trang web để thu thập dữ liệu, máy chủ lưu trữ trang web sẽ tạo một phiên giữa bạn và trang web.

Vì vậy, một số trang web có thể áp đặt thời gian chờ khi cạo các bộ dữ liệu lớn. Sau đó, một lần nữa, khi bạn gửi nhiều yêu cầu từ cùng một địa chỉ IP, trang web mục tiêu sẽ chặn bạn, giả sử rằng bạn đang thực hiện hoạt động đáng ngờ.

Vì vậy, bạn cần xoay vòng các yêu cầu bằng proxy dân cư, thiết lập nhiều phiên cho mỗi yêu cầu. 

Ưu điểm đáng kể của phương pháp trên là bạn không chỉ có thể cạo dữ liệu song song mà còn xuất hiện trang web mục tiêu khi bạn đang gửi lưu lượng truy cập không phải trả tiền.

Do đó, trang web mục tiêu sẽ ít có khả năng chặn bạn nhất. Ngoài ra, vì lý do này, web scraping được liên kết chủ yếu với các phiên xoay hơn là các phiên dính.  

Bạn có thể tham khảo bài viết Sticky vs. Rotating Sessions để biết thêm thông tin về hai loại phiên.

Cookie

Tôi nhắc lại rằng trở ngại chính với việc quét web là tránh các khối mà trang web mục tiêu áp đặt. Bây giờ chúng ta đã xem xét cách các phiên có thể khắc phục nó với các proxy luân phiên; Tuy nhiên, một phiên họp một mình sẽ không giải quyết được vấn đề.

Như đã thảo luận trong một số phần ở trên, máy chủ web đích sẽ gửi cookie đến thiết bị khách. Vì vậy, khi bạn thực hiện yêu cầu đến một số trang web nhất định để thu thập dữ liệu, bạn cần có quyền truy cập vào đúng cookie để truy cập dữ liệu cần thiết. 

Ví dụ: giả sử rằng bạn truy cập một trang sản phẩm cụ thể trong trang web Thương mại điện tử không cung cấp cookie cho bạn. Sau đó, sẽ có một cơ hội tuyệt vời mà trang web mục tiêu xác định bạn là một hoạt động bot.

Vì vậy, như một biện pháp khắc phục cho vấn đề này, trước tiên bạn có thể truy cập trang chủ của trang web Thương mại điện tử cụ thể này và lấy tệp dữ liệu cookie. Sau đó, bạn có thể gửi các yêu cầu cạo với nhiều proxy dân cư cùng với tệp cookie.

Lợi ích chính của phương pháp này là trang web mục tiêu ít có khả năng chặn bạn nhất vì bạn chưa gửi tệp cookie có liên quan. Ngoài ra, nó sẽ xuất hiện với trang web mục tiêu khi các yêu cầu khác nhau đang xuất hiện từ những người dùng khác nhau.

Kết thúc

Chúng tôi hy vọng rằng bạn đã có được một cái nhìn tổng quan toàn diện về những phiên và cookie chuyên sâu hơn trong bài viết này. Cookie và phiên tạo thành một phần không thể thiếu của việc quét web vì nếu không hiểu cách chúng hoạt động sẽ dẫn đến việc chặn các trang web mục tiêu.

Quá trình quét web của bạn chắc chắn sẽ diễn ra suôn sẻ mà không gặp bất kỳ trở ngại nào khi bạn sử dụng cookie và phiên đúng cách với proxy.