Sessões e cookies na recolha de dados da Web

Raspagem, Jan-24-20225 minutos de leitura

Não se pode ignorar as sessões e os cookies no domínio da recolha de dados da Web. A maioria das aplicações Web depende das sessões e dos cookies para se lembrar de cada utilizador e proporcionar-lhe uma melhor experiência de utilização. Mas o que são exatamente as sessões e os cookies no mundo da programação Web e como funcionam? Neste artigo, vamos

Não se pode ignorar as sessões e os cookies no domínio da recolha de dados da Web. A maioria das aplicações Web depende das sessões e dos cookies para se lembrar de cada utilizador e proporcionar-lhe uma melhor experiência de utilização. 

Mas o que são exatamente as sessões e os cookies no mundo da programação Web e como funcionam? Neste artigo, vamos responder a todas estas perguntas antes de passarmos à utilização das sessões e dos cookies no web scraping. Em primeiro lugar, vamos começar pelas sessões.

Vamos mergulhar, pessoal!

Quais são as sessões na Web?

Em termos mais simples, uma sessão é simplesmente uma série de interacções do utilizador entre o seu dispositivo e o servidor ao qual se liga. A duração de uma sessão pode ser a partir do momento em que um dispositivo estabelece comunicação com um servidor. Uma sessão termina quando um utilizador termina uma ligação com uma aplicação Web.

Por outro lado, pode haver sessões que o temporizador invoca quando um utilizador começa a visitar um sítio Web. Um servidor Web define estes temporizadores para um período específico e a sessão expira quando o temporizador abranda.

Uma sessão pode ser dividida em:

  1. Com estado: Pelo menos uma das partes preserva a informação relativa à comunicação. Isto significa que quando um cliente estabelece uma comunicação com o servidor, este serve o utilizador recuperando a informação sobre os dados da sessão anterior.  
  2. Sem estado: Um servidor não guarda os dados de um cliente num servidor numa sessão sem estado para os dados serem utilizados na sessão seguinte. Em vez disso, o cliente armazena os dados da sessão e transmite-os ao servidor como e quando necessário. Isto implica que, quando um cliente inicia uma nova sessão, esta não se baseia nos dados trocados na sessão anterior.

Vamos aprofundar o funcionamento de uma sessão para compreender melhor os conceitos.

Como é que as sessões funcionam?

Embora possam existir vários tipos de sessões, os fundamentos em que operam permanecem os mesmos. Vamos começar com um tipo de sessão comum, a sessão HTTP.

Sessão HTTP

Quando um dispositivo cliente inicia um pedido de ligação a um servidor através de um navegador Web, o servidor aceita o pedido e devolve a resposta criando uma sessão. Juntamente com a resposta, o servidor também devolve o ID da sessão. Em seguida, o cliente envia mais pedidos juntamente com o ID da sessão e o browser responde subsequentemente. 

Todo o processo continua até que o utilizador termine.

Exemplos típicos de Sessões

Exemplos específicos de sessões incluem a visita a uma página Web de comércio eletrónico e a adição de artigos a um carrinho de compras, o preenchimento de formulários Web, a deslocação numa página Web e o acesso de um aluno a um portal Web para ver as suas notas.

Posteriormente, em cada visita, o servidor e o cliente trocam dados utilizando uma ID de sessão. Um diretório temporário no servidor guarda as informações da sessão, tais como as páginas que visualizou, as credenciais do utilizador, os dados que seleccionou em caixas de verificação ou listas suspensas, os itens que adicionou a um carrinho de compras, etc.

Em seguida, estes dados são disponibilizados para cada página que visitou num sítio Web.

Em algumas páginas Web, os programadores Web definem sessões com base num temporizador. O principal objetivo da utilização de um temporizador é desencorajar os utilizadores de uma atividade ideal durante um período prolongado. Após um período de tempo limite, essas sessões expiram e o servidor Web inicia uma nova sessão para quaisquer outras interacções.  

O diagrama abaixo é um exemplo de uma sessão.

Para proporcionar uma experiência de utilizador única, juntamente com uma sessão, os browsers utilizam um conceito chamado cookies. Vamos saber mais sobre ele na próxima secção.

O que são bolachas?

Quando um cliente inicia um pedido a um servidor, este cria a sessão e envia a resposta com um cookie. Agora, os cookies são pequenos pedaços de dados, incluindo as páginas que visitou, dados do agente do utilizador, quanto tempo esteve numa página Web, outros dados pessoais ao entrar no sítio Web e cookies que aceitou anteriormente e que o servidor cria.

O servidor cria estes dados num pequeno ficheiro de texto e envia-o para o cliente. Depois disso, o cliente guarda o ficheiro cookie no browser do utilizador. Depois, em cada pedido subsequente, o cliente também envia este ficheiro cookie. Em seguida, o servidor recupera os dados da sessão pertencentes a esse utilizador distinto e envia a resposta ao cliente. 

O processo acima mencionado é ilustrado no diagrama abaixo:

Exemplo de um cenário de utilização de cookies

Imaginemos que estava a preencher um formulário em linha para comprar um produto. Depois de preencher todos os seus dados pessoais e selecionar o artigo para o carrinho de compras, fecha acidentalmente a janela do browser antes de terminar a compra. 

Depois de reabrir essa janela, aperceber-se-á de que não teve de voltar a introduzir todos os seus dados e selecionar o item novamente. Pode retomar a partir do ponto onde parou. Tudo isto é possível graças à combinação cookie-sessão que acabou de aprender.

Como se pode ver, a combinação cookie-sessão melhora a experiência do utilizador e os sítios Web seriam ineficazes sem eles.

Cookies persistentes vs. cookies de sessão

Um cookie de sessão é apagado quando fecha o seu browser, pelo que não retém qualquer informação no seu dispositivo. Além disso, não envia qualquer informação para fora do seu dispositivo.

Em contrapartida, os cookies persistentes são armazenados no seu disco rígido até expirarem ou até os apagar. Estes cookies recolhem dados sobre o seu histórico de navegação, o tempo que permaneceu numa determinada página Web, os dispositivos que utilizou para aceder ao sítio Web, etc.

Casos de utilização de cookies

Na maioria das circunstâncias, os programadores Web utilizam cookies para proporcionar uma experiência personalizada aos seus utilizadores. No entanto, são mais conhecidos por serem utilizados por sítios Web que requerem temas personalizados e credenciais de início de sessão. Além disso, se aprofundar ainda mais, pode aperceber-se de que também estão envolvidos na gestão e rastreio de sessões. Vamos dar uma olhada em cada um deles:

Gestão de sessões

Já sabe que uma sessão é uma interação contínua com um sítio Web até que o utilizador termine ou o temporizador termine a sessão. Assim, quando se activam os cookies numa página Web, estes armazenam cada um destes dados de sessão para que um utilizador não tenha de preencher todas as informações de um formulário online ou mesmo iniciar sessão novamente se fechar acidentalmente a janela do browser. 

Por conseguinte, todas estas acções facilitam a navegação na Web para que não tenha de realizar tarefas repetitivas.

Rastreio

Os cookies específicos são conhecidos como cookies de rastreio, que rastreiam os utilizadores em vários sítios ou serviços e recolhem dados. As empresas utilizam os dados que os cookies de rastreio recolhem para marketing direto, como anúncios direccionados.

Os cookies de rastreio funcionam através da colocação de um ficheiro de texto no browser durante a visualização de um sítio Web. Este ficheiro de texto recolhe dados, incluindo a atividade do utilizador num sítio Web, a localização geográfica, o histórico de navegação e as diferentes tendências que o cliente utilizou para efetuar compras.  

Embora esteja fora do âmbito do artigo afirmar se a utilização de cookies de destino é ética ou não, pode, sem dúvida, incomodar os utilizadores. Mas os utilizadores podem apagar estes cookies, uma vez que não são obrigados a ver estes anúncios.

Pode certamente aprofundar este tema pesquisando no Google.

Preferências personalizadas

Todos nós temos preferências pessoais no que respeita à navegação na Web. Os proprietários de sítios e os programadores Web compreendem este facto e é por isso que utilizam cookies para preferências personalizadas. Estas preferências personalizadas incluem a apresentação do conteúdo e a venda de serviços ao utilizador com base na localização, no idioma, no tipo de browser, na versão do sistema operativo e muito mais.

Os sítios Web podem alterar o seu conteúdo para permitir que as pessoas percorram a página com facilidade.

Em que é que um cookie difere de uma sessão?

Esperamos que tenha ficado a conhecer melhor as sessões e os cookies. Os cookies armazenam informações sobre as informações de navegação do utilizador e outros dados pessoais no computador do utilizador. Em contrapartida, o servidor cria uma sessão que guarda os dados temporariamente e termina quando um utilizador encerra a interação com o sítio Web.

Por outro lado, um cookie reside no seu computador até expirar ou o utilizador o apagar.

O quadro seguinte sintetiza ainda mais as diferenças:

Sessão vs. Cookies

Como é que as sessões e os cookies são utilizados na recolha de dados da Web?

Sessões

Quando se trata de sessões na recolha de dados da Web, os proxies funcionam como uma ponte. Por exemplo, quando se liga a um sítio Web para recolher dados, o servidor que aloja o sítio Web cria uma sessão entre si e o sítio Web.

Por isso, alguns sítios Web podem impor limites de tempo para a recolha de grandes conjuntos de dados. Por outro lado, quando envia vários pedidos a partir do mesmo endereço IP, o sítio Web alvo bloqueia-o, assumindo que está a realizar uma atividade suspeita.

Por isso, é necessário rodar os pedidos utilizando proxies residenciais, que estabelecem várias sessões para cada pedido. 

A vantagem significativa do método acima referido é que não só seria capaz de extrair dados em paralelo, como também apareceria o sítio Web alvo à medida que estivesse a enviar tráfego orgânico.

Consequentemente, é menos provável que o sítio Web alvo o bloqueie. Além disso, devido a esta razão, a recolha de dados da Web está associada principalmente a sessões rotativas e não a sessões fixas.  

Pode consultar o artigo Sticky vs. Rotating Sessions (Sessões fixas vs. rotativas ) para obter mais informações sobre os dois tipos de sessões.

Biscoitos

Reitero que o principal obstáculo à recolha de dados da Web é evitar os bloqueios que o sítio Web de destino impõe. Já vimos como as sessões podem ultrapassar este obstáculo com proxies rotativos; no entanto, uma sessão por si só não resolveria o problema.

Tal como referido em algumas das secções anteriores, o servidor Web de destino envia os cookies para um dispositivo cliente. Assim, quando faz pedidos a determinadas páginas Web para recolher dados, precisa de ter acesso aos cookies certos para aceder aos dados necessários. 

Por exemplo, suponhamos que acede a uma determinada página de produto num sítio Web de comércio eletrónico que não fornece cookies. Nesse caso, haverá uma grande probabilidade de o sítio Web alvo o identificar como uma atividade de bot.

Assim, como solução para este problema, pode começar por visitar a página inicial deste sítio Web de comércio eletrónico específico e obter o ficheiro de dados do cookie. Em seguida, pode enviar os pedidos de raspagem com vários proxies residenciais juntamente com o ficheiro de cookies.

A principal vantagem desta abordagem é que o sítio Web alvo tem menos probabilidades de o bloquear por não ter enviado o ficheiro cookie relevante. Além disso, o sítio Web de destino verá que estão a surgir pedidos diferentes de utilizadores diferentes.

Conclusão

Esperamos que tenha ficado com uma visão global do que são as sessões e os cookies neste artigo. Os cookies e as sessões são parte integrante da recolha de dados da Web, uma vez que, sem compreender o seu funcionamento, os sítios Web alvo podem bloqueá-los.

O seu processo de recolha de dados da Web será, sem dúvida, tranquilo, sem qualquer obstáculo, se utilizar corretamente os cookies e as sessões com proxies.