Phiên và cookie trong web Scraping

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

Bạn không thể bỏ qua Sessions và cookie trong lĩnh vực web scraping. Hầu hết các ứng dụng web đều phụ thuộc vào session và cookie để ghi nhớ từng người dùng riêng biệt nhằm cung cấp cho họ trải nghiệm người dùng tốt hơn. Nhưng session và cookie trong thế giới lập trình web chính xác 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 Sessions và cookie trong lĩnh vực web scraping. Hầu hết các ứng dụng web đều phụ thuộc vào session và cookie để ghi nhớ từng người dùng riêng biệt nhằm mang lại cho họ trải nghiệm người dùng tốt hơn. 

Nhưng chính xác thì session 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 session và cookie trong web scraping. Đầu tiên, chúng ta sẽ bắt đầu với sessions.

Chúng ta hãy cùng bắt đầu nhé, mọi người!

Có những buổi học nào trên web?

Nói một cách đơn giản hơn, một phiên chỉ đơn giản là một loạt 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 tới. Thời lượng của một phiên có thể tính từ thời điểm thiết bị thiết lập giao tiếp với máy chủ. Sau đó, một phiên kết thúc khi người dùng hoàn tất kết nối với ứng dụng web.

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

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

  1. Có trạng thái : Ít nhất một trong các bên lưu giữ thông tin liên quan đến giao tiếp. Điều này có nghĩa là khi máy khách thiết lập giao tiếp với máy chủ, máy chủ sẽ phục vụ người dùng bằng cách truy xuất thông tin về 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 dữ liệu đó đến máy chủ khi cần. Điều này ngụ ý rằng khi máy khách bắt đầu phiên mới, phiên đó không dựa trên dữ liệu được trao đổi trong phiên trước đó.

Chúng ta hãy đi sâu hơn vào cách thức hoạt động của phiên để hiểu rõ hơn các khái niệm.

Các buổi học diễn ra như thế nào?

Mặc dù có thể có nhiều loại phiên khác nhau, nhưng nguyên tắc hoạt động của chúng vẫn giống nhau. 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 hàng 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ủ 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 đó, máy khách gửi thêm các yêu cầu cùng với ID phiên và trình duyệt phản hồi sau đó. 

Toàn bộ quá trình tiếp tục cho đến khi người dùng kết thúc.

Ví dụ điển hình của Phiên

Các ví dụ cụ thể về các buổi học bao gồm việc truy cập trang web thương mại điện tử và thêm sản phẩm 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 thông tin web bằng cách đăng nhập vào đó để xem điểm của mình.

Sau đó, trong 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 của người dùng, dữ liệu bạn đã chọn trong 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 đó, dữ liệu này sẽ được cung cấp cho từng trang bạn đã truy cập trên trang web.

Trên một số trang web, các nhà phát triển web thiết lập các 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ộ đếm thời gian là ngăn cản 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 khi hết thời gian chờ, các phiên như vậy sẽ hết hạn và máy chủ web sẽ khởi tạo một phiên mới cho bất kỳ tương tác nào khác.  

Biểu đồ bên dưới là một ví dụ về một phiên làm việc.

Để cung cấp trải nghiệm người dùng độc đáo, cùng với phiên, trình duyệt sử dụng một khái niệm gọi là cookie. Chúng ta hãy 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áy chủ, sau đó nó sẽ tạo phiên và gửi phản hồi bằng cookie. Hiện tại, cookie là những phần 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 ra.

Máy chủ tạo dữ liệu này trong tệp văn bản nhỏ và gửi đến máy khách. Sau đó, máy khách 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, máy khách 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 nêu trên được minh họa trong sơ đồ dưới đây:

Ví dụ về tình huống sử dụng cookie

Giả sử bạn đang điền vào một biểu mẫu trực tuyến để mua một sản phẩm. Sau khi điền tất cả thông tin cá nhân và chọn sản phẩm 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 cần phải nhập lại tất cả thông tin chi tiết và chọn lại mục đó. Bạn có thể tiếp tục từ nơi bạn đã dừng lại. Tất cả những điều này đều có thể thực hiện được nhờ vào sự kết hợp cookie-session mà bạn vừa học được.

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

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

Cookie phiên sẽ bị xóa khi bạn đóng trình duyệt và do đó nó không lưu giữ 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 cố định được lưu trữ trong ổ 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 ở lại trên một trang web cụ thể, 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, các 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 chúng 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 loại:

Quản lý phiên

Bạn đã biết rằng phiên là tương tác liên tục với một trang web cho đến khi người dùng kết thúc hoặc bộ đếm thời gian kết thúc 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 duyệt web dễ dàng hơn để 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 được cho mục đích tiếp thị trực tiếp, như quảng cáo được nhắm mục tiêu.

Cookie theo dõi hoạt động bằng cách thả một tệp văn bản vào trình duyệt trong khi xem một 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ằm ngoài phạm vi của bài viết để nêu rõ việc sử dụng cookie mục tiêu có đạo đức hay không, tuy nhiên, điều này 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 có nghĩa vụ phải xem các quảng cáo này.

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

Sở thích cá nhân

Tất cả các bạn đều có sở thích cá nhân khi nói đến việc 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 để có sở thích cá nhân. Các sở thích cá nhân này bao gồm việc cung cấp 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à nhiều hơn nữa.

Các trang web có thể thay đổi nội dung để mọi người có thể duyệt trang dễ dàng.

Cookie khác với phiên làm việc như thế nào?

Bây giờ chúng tôi hy vọng bạn đã hiểu được về 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à 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 lưu trữ dữ liệu tạm thời và kết thúc khi người dùng đóng tương tác với trang web.

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

Bảng sau đây tóm tắt thêm những điểm khác biệt:

Phiên so với Cookie

Các phiên và cookie được sử dụng như thế nào trong quá trình thu thập dữ liệu web?

Phiên họp

Khi nói đến các phiên trong web scraping, proxy đóng vai trò như một cầu nối. Ví dụ, khi bạn kết nối với một trang web để scraping 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 dụng thời gian chờ khi thu thập dữ liệu lớn. Mặt khác, 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, cho rằng bạn đang thực hiện hoạt động đáng ngờ.

Vì vậy, bạn cần luân phiên các yêu cầu bằng cách sử dụng proxy lưu trú, 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ể thu thập dữ liệu song song mà còn có thể hiển thị trang web mục tiêu khi bạn đang gửi lưu lượng truy cập tự nhiê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, việc thu thập dữ liệu web chủ yếu liên quan đến các phiên luân phiên thay vì các phiên cố định.  

Bạn có thể tham khảo bài viết Phiên cố định so với Phiên luân phiên để biết thêm thông tin về hai loại phiên này.

Bánh quy

Tôi xin nhắc lại rằng trở ngại chính với việc thu thập dữ liệu 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ó bằng cách luân phiên proxy; tuy nhiên, một phiên riêng lẻ 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 gửi cookie đến thiết bị khách hàng. Vì vậy, khi bạn yêu cầu 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ử bạn truy cập vào một trang sản phẩm cụ thể trong một trang web thương mại điện tử không cung cấp cho bạn cookie. Khi đó, sẽ có khả năng lớn là trang web mục tiêu xác định bạn là hoạt động của bot.

Vì vậy, để khắc phục 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 yêu cầu thu thập dữ liệu với nhiều proxy dân dụng cùng với tệp cookie.

Lợi ích chính của cách tiếp cận 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, trang web mục tiêu sẽ thấy các yêu cầu khác nhau đang xuất hiện từ những người dùng khác nhau.

Phần kết luận

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

Quá trình thu thập dữ liệu 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 hợp lý với proxy.