“Lazier” Web Scraping é melhor raspagem da Web
Nunca é necessário obter dados de uma página da Web? Analisar o conteúdo para dados é chamado de raspagem na Web, e [Doug Guthrie] tem algumas idéias para fazer o processo de escavação de dados de uma página da Web mais simples e muito mais eficiente, completa com exemplos de código no Python. Ele usa a obtenção de dados do Yahoo Finance como exemplo, porque é aparentemente um caso de uso bastante comum, julgando com que frequência questiona sobre o estouro de pilha. Os conceitos gerais são muito amplamente aplicáveis, no entanto.
[Doug] mostra que, ao analisar uma página da Web para um determinado pedaço de dados (por exemplo, um preço de estoque) não é difícil, muitas vezes há maneiras muito mais fáceis e mais rápidas de ir sobre isso. No caso do Yahoo Finance, a página da Web muitos de nós não é realmente a fonte real dos dados que estão sendo exibidos, é apenas um front end.
Uma maneira de raros de forma mais eficientemente é para chegar à fonte dos dados. No caso do Yahoo Finance, os dados exibidos em uma página da Web vem de uma variável JavaScript que é perfeitamente acessível ao usuário final e muito mais fácil de analisar e trabalhar. Outra maneira é ir inferior a um nível inferior e recuperar dados formatados pelo JSON do mesmo lugar que a página da Web front-end faz; Ignorando a extremidade frontal e tratando essencialmente como uma API não oficial. De qualquer forma não é muito mais fácil do que analisar o resultado final, mas mais rápido e muito mais confiável, para inicializar.
Como se encontra esses recursos? [Doug] dá algumas ótimas ideias sobre como exatamente o que fazer, incluindo como usar as ferramentas de desenvolvedor de um navegador da Web para as solicitações do XHR de Ferret. Esses métodos não funcionam para tudo, mas são absolutamente vale a pena olhar para ver se são uma opção. Outro recurso para manter em mente é Woob (Web fora dos navegadores), que tem uma excelente lista de extremidades traseiras disponíveis para ler e interagir com o conteúdo da Web. Então, se você precisar de dados para o seu programa, mas está em uma página da web? Não deixe que isso pare você!