Apresentação
E
u
Rodrigo de Sales da Silva
• Bacharel em Ciência da Computação
• MBA em Tecnologia da Informação
• webdev@mestreseo
• sysadmin@mestreseo
• webcrawling
• data mining
• reconhecimento de padrões
• data mining
Objetivo
Encontrar
Informação
Motivação
• Como monitorar seu concorrente?
• Atualizações em agregadores de notícias?
• Pretende automatizar procedimentos?
• Verificar posições em mecanismos de
busca?
Oque fazer?
Requisiçã
o
HTTP
Parsing
dos dados
cURL regexp
Protocolo HTTP
http://www.w3.org/Protocols/rfc2616/rfc2616.html
The Hypertext Transfer Protocol (HTTP) is
an application-level protocol for distributed,
collaborative, hypermedia information
systems. HTTP has been in use by the
World-Wide Web global information initiative
since 1990.
Protocolo HTTP
The HTTP protocol is a request/response protoco
1.4 Overall Operation
Client URL Library - cURL
• http
• https
• ftp
• gopher
• telnet
• dict
• file
• ldap
Todas as funções foram adicionadas no PHP 4.0.2
cURL - Começando
cURL - obtendo o retorno
cURL - header
cURL - redirects
cURL - timeout
cURL - SSL
cURL - user-agent
getUserAgent() == http://www.user-agents.org
cURL - proxies
proxy4free.com
freeproxysite.com
Squid
cURL - Cookies
Obs.: Não esquecer de ajustar as permissões do
arquivo.
cURL – GET e POST
cURL
http://us2.php.net/manual/en/function.curl-setopt.php
Mais informações:
Expressões Regulares
• São formas concisas e flexíveis de identificar
cadeias de caracteres. (wikipedia.org)
• preg_match()
• preg_match_all()
• preg_split ()
• preg_grep()
• preg_replace()
• preg_quote()
• preg_filter ()
• .....
regexp
• Metacaracteres: a-z, 0-9
• Coringa Ponto: ma.
• Lista: [012], [a-z]
• Lista Negada: [^0-9]
• Opcional: ?
• Zero ou mais: *
• Um ou mais: +
• Quantidades: {n, m}
• Inicio de Linha: ^
• Final de Linha: $
• Escape:
regexp
• Algoritmos Gulosos x Algoritmos Preguiçosos
• Grupos: boa-(tarde|noite)
• Grupos nomeados: (?P<name>)
• Back reference: 1, 2
Mais informações: guia-er.sourceforge.net
pcntl – Process Control
• Oque é?
• Para que serve?
• Como funciona?
pcntl
pcntl
• Oque esse código gera?
• 1? 2? Nada? Tudo?
pcntl
pcntl
• posix_getpid();
• posix_getppid();
• posix_get_last_error();
php.net/manual/en/ref.posix.php
pctl
• Praticamente toda informação que
necessitamos está disponível na web.
• Capturar, entender e armazenar, depende só
de você.
• As ferramentas estão aí para serem utilizadas.
• Perguntas???
Concluindo
Obrigado, =)

WebCrawling Utilizando PHP