WebCrawling Utilizando PHP

30

Transcript of WebCrawling Utilizando PHP

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 protocol.

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.comSquid

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 quenecessitamos está disponível na web.

• Capturar, entender e armazenar, depende só de você.

• As ferramentas estão aí para serem utilizadas.

• Perguntas???

Concluindo

Obrigado, =)