Web Scraping com Python - 3ª Edição
Coletando dados da web moderna
Descrição do livro
Se a programação é como mágica, então o web scraping é certamente uma forma de aplicação dessa mágica. Ao escrever um programa automatizado simples, você pode consultar servidores da web, solicitar dados e analisá-los para extrair as informações necessárias. Esta terceira edição, totalmente atualizada, não só apresenta você ao web scraping, mas também serve como um guia abrangente para coletar quase todos os tipos de dados disponíveis na web.
A Parte I deste livro tem como foco os princípios básicos do web scraping: como utilizar Python para solicitar informações de um servidor web, realizar o tratamento básico da resposta do servidor e começar a interagir com sites de forma automatizada. A Parte II explora uma variedade de ferramentas e aplicações mais específicas para se adequar a qualquer cenário de web scraping que você provavelmente encontrará.
Este livro mostra como:
• Fazer o parsing de páginas HTML complexas
• Desenvolver crawlers com o framework Scrapy
• Aprender métodos para armazenar os dados coletados
• Ler e extrair dados de documentos
• Limpar e normalizar dados mal formatados
• Ler e escrever linguagens naturais
• Rastrear formulários e logins
• Fazer o scraping de JavaScript e rastrear APIs
• Utilizar e escrever software de conversão de imagem em texto
• Evitar armadilhas de scraping e bloqueadores de bots
• Utilizar scrapers para realizar testes em seu site
Ver menos ▲Sumário
- Prefácio
- Parte I ▪ Construindo scrapers
- Capítulo 1 ▪ Como a internet funciona
- Redes
- Camada física
- Camada de enlace de dados
- Camada de rede
- Camada de transporte
- Camada de sessão
- Camada de apresentação
- Camada de aplicação
- HTML
- CSS
- JavaScript
- Examinando sites com as ferramentas de desenvolvedor
- Redes
- Capítulo 2 ▪ Questões de legalidade e ética na prática de web scraping
- Marcas registradas, direitos autorais, patentes... Céus!
- Lei de Direitos Autorais
- Lei de Invasão de Bens Móveis
- A Lei de Fraude e Abuso de Computadores
- Arquivos robots txt e termos de serviço
- Três casos envolvendo web scrapers
- eBay versus Bidder’s Edge e a Lei de Invasão de Bens Móveis
- Field versus Google: direitos autorais e robots txt
- Marcas registradas, direitos autorais, patentes... Céus!
- Capítulo 3 ▪ Aplicações do web scraping
- Classificando projetos
- E-commerce
- Marketing
- Pesquisa acadêmica
- Criação de produtos
- Agências de viagens
- Vendas
- Scraping de SERP
- Capítulo 4 ▪ Escrevendo seu primeiro web scraper
- Instalação e utilização do Jupyter
- Conectando
- Um introdução ao BeautifulSoup
- Instalando o BeautifulSoup
- Executando o BeautifulSoup
- Conectando-se de forma confiável e tratando exceções
- Capítulo 5 ▪ Parsing avançado de HTML
- Outras utilidades do BeautifulSoup
- find() e find_all() com o BeautifulSoup
- Outros objetos do BeautifulSoup
- Navegando em árvores
- Expressões regulares
- Expressões regulares e o BeautifulSoup
- Acessando atributos
- Expressões lambda
- Nem sempre é bom bater na mesma tecla
- Outras utilidades do BeautifulSoup
- Capítulo 6 ▪ Escrevendo web crawlers
- Percorrendo um único domínio
- Rastreando um site completo
- Coletando dados de um site completo
- Rastreando pela internet
- Capítulo 7 ▪ Modelos de web crawling
- Planejando e definindo objetos
- Lidando com diferentes layouts de sites
- Estruturando crawlers
- Rastreando sites por meio de pesquisa
- Rastreando sites por meio de links
- Rastreando vários tipos de página
- Pensando nos modelos de web crawlers
- Capítulo 8 ▪ Scrapy
- Instalando o Scrapy
- Iniciando um novo spider
- Escrevendo um scraper simples
- Utilizando o spider com regras
- Criando itens
- Apresentando itens
- O pipeline de itens
- Fazendo log com o Scrapy
- Recursos adicionais
- Instalando o Scrapy
- Capítulo 9 ▪ Armazenando dados
- Arquivos de mídia
- Armazenando dados no formato CSV
- MySQL
- Instalando o MySQL
- Alguns comandos básicos
- Integração do MySQL com Python
- Técnicas e boas práticas de banco de dados
- “Six Degrees” no MySQL
- Parte II ▪ Scraping avançado
- Capítulo 10 ▪ Lendo documentos
- Codificação de documentos
- Texto
- Codificação de texto e a internet global
- CSV
- Lendo arquivos CSV
- Microsoft Word e .docx
- Capítulo 11 ▪ Trabalhando com dados sujos
- Limpando textos
- Trabalhando com texto normalizado
- Limpando dados com o pandas
- Limpando dados
- Indexando, ordenando e filtrando dados
- Ampliando seus conhecimentos sobre o pandas
- Capítulo 12 ▪ Lendo e escrevendo em linguagens naturais
- Resumindo dados
- Modelos de Markov
- Six Degrees of Wikipedia: conclusão
- Natural Language Toolkit
- Instalação e configuração
- Análise estatística com o NLTK
- Análise lexicográfica com o NLTK
- Recursos adicionais
- Capítulo 13 ▪ Rastreando formulários e logins
- Biblioteca Requests do Python
- Enviando um formulário básico
- Botões de rádio, caixas de seleção e outras entradas
- Enviando arquivos e imagens
- Lidando com logins e cookies
- Autenticação básica de acesso HTTP
- Outros problemas com formulários
- Capítulo 14 ▪ Scraping de JavaScript
- Introdução rápida ao JavaScript
- Bibliotecas JavaScript comuns
- Ajax e HTML dinâmico
- Executando JavaScript em Python com o Selenium
- Instalando e executando o Selenium
- Seletores do Selenium
- Aguardando o carregamento
- XPath
- Webdrivers adicionais do Selenium
- Tratando redirecionamentos
- Uma última observação sobre JavaScript
- Introdução rápida ao JavaScript
- Capítulo 15 ▪ Rastreando por meio de APIs
- Introdução rápida a APIs
- Métodos HTTP e APIs
- Mais sobre respostas de API
- Parsing de JSON
- APIs não documentadas
- Encontrando APIs não documentadas
- Documentando APIs não documentadas
- Combinando APIs com outras fontes de dados
- Mais sobre APIs
- Introdução rápida a APIs
- Capítulo 16 ▪ Processamento de imagens e reconhecimento de textos
- Visão geral das bibliotecas
- Pillow
- Tesseract
- NumPy
- Processando textos bem formatados
- Ajustando imagens automaticamente
- Coletando texto de imagens em sites
- Lendo CAPTCHAs e treinando o Tesseract
- Treinando o Tesseract
- Reconhecendo CAPTCHAs e enviando soluções
- Visão geral das bibliotecas
- Capítulo 17 ▪ Evitando armadilhas ao fazer scraping
- Uma observação sobre ética
- Parecendo um ser humano
- Ajuste seus cabeçalhos
- Lidando com cookies utilizando JavaScript
- Impressão digital do protocolo TLS
- Tempo é tudo
- Recursos de segurança comuns em formulários
- Valores de campos de entrado ocultos
- Evitando armadilhas do tipo honeypot
- Lista de verificação para que seu bot pareça um ser humano
- Capítulo 18 ▪ Realizando testes em seu site com scrapers
- Um introdução à realização de testes
- O que são testes unitários?
- Módulo unittest do Python
- Realizando testes na Wikipédia
- Realizando testes com o Selenium
- Interagindo com o site
- Um introdução à realização de testes
- Capítulo 19 ▪ Web crawling distribuído
- Processos versus threads
- Web crawling com múltiplas threads
- Condições de disputa e filas
- Mais recursos do módulo threading
- Múltiplos processos
- Web crawling com multiprocessos
- Comunicação entre processos
- Web crawling com multiprocessos — outra abordagem
- Capítulo 20 ▪ Proxies de web scraping
- Por que utilizar servidores remotos?
- Evitando o bloqueio de endereços IP
- Portabilidade e extensibilidade
- Tor
- PySocks
- Hospedagem remota
- Executando o web scraper a partir de uma conta de hospedagem de sites
- Executando o web scraper a partir da nuvem
- Seguindo em frente
- Proxies de web scraping
- ScrapingBee
- ScraperAPI
- Oxylabs
- Zyte
- Recursos adicionais
- Por que utilizar servidores remotos?
- Índice remissivo
Sobre o autor
Ryan Mitchell é engenheira de software na LinkeDrive em Boston, onde desenvolve as ferramentas de análise de dados e de APIs da empresa. Ela presta consultoria regularmente em projetos de web scraping, principalmente nas indústrias financeira e varejista.… Ver perfil completo ▶






