1. O documento discute técnicas para varredura de APIs REST em larga escala utilizando PHP, incluindo processamento paralelo, filas de processamento, escalabilidade de banco de dados e backups. 2. É explicado como varredores de web se diferenciam de varredores de API e são apresentadas ferramentas como Respect/Stream para varredura assíncrona. 3. São detalhadas características e limites das APIs do Twitter e Facebook, incluindo cursores e batch requests.
3. 3
KingoLabs
●
Coleta e Análise de Dados
●
Twitter, Facebook, Foursquare, etc
●
Sorteie.me, trmanager, Kingo Meter, kingo.to,
rial.to, etc
●
Ubuntu, PHP 5.3, MySQL, MongoDB
4. 4
Programaçãodehoje
● Por que varrer em larga escala?
● Processamento paralelo
● Daemons
● Processamento em fila
● Escalabilidade de escritas no banco de dados
● Backups
● Twitter: Características
● Facebook: Características
5. 5
Porquevarreremlargaescala?
●
A API tem os dados que eu quero, mas não na
granularidade que eu quero.
●
Quero pré-carregar dados ao invés de ler sob
demanda.
●
Quero dominar o mundo e preciso dos dados dos
usuários.
10. 10
stream_select()
●
Uma forma de percorrer várias streams sem locks
de leitura nem escrita.
●
Qualquer plataforma.
●
Qualquer stream (proc_open(), fopen(),
stream_socket_client(), etc.)
●
Você tem que manipular o HTTP na unha.
12. 12
Ferramentas
●
KingoBase – Interna, experimental.
●
Foi o projeto piloto de crawler.
●
http://github.com/caferrari/SimpleCrawler
●
Somente HTTP
●
http://github.com/Respect/Stream
●
Qualquer stream