SlideShare uma empresa Scribd logo
1 de 15
Desenvolvendo web
crawler/scraper com
Python
G e e k N i g h t
2
3
Web Crawler
● Spider, robôs
● Começa com uma lista de URL's
para visitar. A cada URL visitada, ele
identifica os hyperlinks e os guarda
para visitá-los no futuro, e também
copia o conteúdo da página.
● GoogleBot, Yahoo
Slurp,DuckDuckBot...
4
Web Scraper
● Extrai informações de um web site.
● Relacionado com web indexing.
● Transformação de dados.
5
Trabalho de um crawler/scraper
● Abrir um link
● Cópia e/ou manipulação do dado
6
Seletores
● Xpath
● CSS Selectors
Retirado do site http://ejohn.org/blog/xpath-css-selectors/
7
import request
● Para humanos
● urllib2
8
lxml
● Uma implementação em
Python das bibliotecas em C
libxml2 e libxslt para parse de
xml e html.
●Suporta css selector e xpath.
9
lxml
10
BeautifulSoup
11
PySpider
12
Scrapy
● Open Source framework, poderoso
para crawling e scraping. Python 2.
● Suporta o uso de xpath e css
selectors.
● Formatos de saída: json, csv, xml,
json lines
● Há exemplos com persistência em
banco.
13
Scrapy
scrapy crawl bbcnews --output results.json Retirado do site http://scraping.pro/
14
Bibliotecas em Python
● Goose
● Pyquery
Obrigada!
Roselma Mendes
rmendes@thoughtworks.com
github.com/roselmamendes

Mais conteúdo relacionado

Mais procurados

Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código aberto
Suissa
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
Suissa
 

Mais procurados (20)

Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)Mashups: Criando Valor na Web 2.0 (BandTec)
Mashups: Criando Valor na Web 2.0 (BandTec)
 
Introdução ao MongoDB
Introdução ao MongoDBIntrodução ao MongoDB
Introdução ao MongoDB
 
Introdução ao MongoDB II
Introdução ao MongoDB IIIntrodução ao MongoDB II
Introdução ao MongoDB II
 
Mecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDBMecanismo de Busca com Node.js + MongoDB
Mecanismo de Busca com Node.js + MongoDB
 
Desenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDBDesenvolvimento de aplicações PHP com MongoDB
Desenvolvimento de aplicações PHP com MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
Mecanismo de busca PHP + MongoDB
Mecanismo de busca PHP + MongoDBMecanismo de busca PHP + MongoDB
Mecanismo de busca PHP + MongoDB
 
Como o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscasComo o elasticsearch salvou minhas buscas
Como o elasticsearch salvou minhas buscas
 
Secot banco de dados no sql de código aberto
Secot   banco de dados no sql de código abertoSecot   banco de dados no sql de código aberto
Secot banco de dados no sql de código aberto
 
Ruby on Rails + MongoDB - GURU Sorocaba
Ruby on Rails + MongoDB - GURU SorocabaRuby on Rails + MongoDB - GURU Sorocaba
Ruby on Rails + MongoDB - GURU Sorocaba
 
Curso mongo db com php
Curso mongo db com phpCurso mongo db com php
Curso mongo db com php
 
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
Elasticsearch: Motor de busca e além. Lições aprendidas criando Tu Próximo...
 
Treinamento Elasticsearch - Parte 2
Treinamento Elasticsearch - Parte 2Treinamento Elasticsearch - Parte 2
Treinamento Elasticsearch - Parte 2
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHP
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
 
Palestra MongoDB
Palestra MongoDBPalestra MongoDB
Palestra MongoDB
 
Conhecendo mundo Node.js
Conhecendo mundo Node.jsConhecendo mundo Node.js
Conhecendo mundo Node.js
 
Iniciando com javaScript 2017
Iniciando com javaScript 2017Iniciando com javaScript 2017
Iniciando com javaScript 2017
 
Introdução à Node.js + MongoDB
Introdução à Node.js + MongoDBIntrodução à Node.js + MongoDB
Introdução à Node.js + MongoDB
 
Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1Treinamento Elasticsearch - Parte 1
Treinamento Elasticsearch - Parte 1
 

Destaque

Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Fernando Macedo
 
Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)
guestf4f70f
 

Destaque (20)

Hackeando Dados públicos com python
Hackeando Dados públicos com pythonHackeando Dados públicos com python
Hackeando Dados públicos com python
 
Extraindo dados públicos na marra com Python
Extraindo dados públicos na marra com PythonExtraindo dados públicos na marra com Python
Extraindo dados públicos na marra com Python
 
Hackeando o Facebook com Python
Hackeando o Facebook com PythonHackeando o Facebook com Python
Hackeando o Facebook com Python
 
Scraping
ScrapingScraping
Scraping
 
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturadoRaspador: Biblioteca em Python para extração de dados em texto semi-estruturado
Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado
 
Hackeando o Facebook com Python
Hackeando o Facebook com PythonHackeando o Facebook com Python
Hackeando o Facebook com Python
 
Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3Oficina Python: Hackeando a Web com Python 3
Oficina Python: Hackeando a Web com Python 3
 
Python Poli 2010
Python Poli 2010Python Poli 2010
Python Poli 2010
 
Hackers
HackersHackers
Hackers
 
Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011Python Mini Ccurso Consegi2011
Python Mini Ccurso Consegi2011
 
Hackeando o Facebook e o Twitter com Python TI no Vale
Hackeando o Facebook e o Twitter com Python TI no ValeHackeando o Facebook e o Twitter com Python TI no Vale
Hackeando o Facebook e o Twitter com Python TI no Vale
 
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
Quokka CMS - Desenvolvendo web apps com Flask e MongoDB - grupy - Outubro 2015
 
LOCKSS Como funciona 2007
LOCKSS Como funciona 2007LOCKSS Como funciona 2007
LOCKSS Como funciona 2007
 
Shut up and give me the data
Shut up and give me the dataShut up and give me the data
Shut up and give me the data
 
Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)Estudo de caso do "O Curioso" (Rio on Rails)
Estudo de caso do "O Curioso" (Rio on Rails)
 
Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014Web Crawling Modeling with Scrapy Models #TDC2014
Web Crawling Modeling with Scrapy Models #TDC2014
 
Introdução a Python - Python Poli
Introdução a Python  - Python PoliIntrodução a Python  - Python Poli
Introdução a Python - Python Poli
 
Web - Crawlers
Web - CrawlersWeb - Crawlers
Web - Crawlers
 
Curso YaCy Mecanismo de Busca de Código Aberto
Curso YaCy Mecanismo de Busca de Código AbertoCurso YaCy Mecanismo de Busca de Código Aberto
Curso YaCy Mecanismo de Busca de Código Aberto
 
Capturando dados com Python - UAI Python
Capturando dados com Python - UAI PythonCapturando dados com Python - UAI Python
Capturando dados com Python - UAI Python
 

Semelhante a Desenvolvendo web crawler/scraper com Python

Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
Suissa
 

Semelhante a Desenvolvendo web crawler/scraper com Python (20)

Web Crawlers
Web CrawlersWeb Crawlers
Web Crawlers
 
Raspagem de Dados com Python
Raspagem de Dados com PythonRaspagem de Dados com Python
Raspagem de Dados com Python
 
Mongo db no mundo real slides
Mongo db no mundo real   slidesMongo db no mundo real   slides
Mongo db no mundo real slides
 
DevDay - MongoDb no mundo real - slides
DevDay - MongoDb no mundo real - slidesDevDay - MongoDb no mundo real - slides
DevDay - MongoDb no mundo real - slides
 
Desmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest FrameworkDesmitificando as aplicações RESTFul usando Django Rest Framework
Desmitificando as aplicações RESTFul usando Django Rest Framework
 
Python
PythonPython
Python
 
Copy of trabalho de redes
Copy of trabalho de redesCopy of trabalho de redes
Copy of trabalho de redes
 
SEO Para Desenvolvedores
SEO Para Desenvolvedores SEO Para Desenvolvedores
SEO Para Desenvolvedores
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com python
 
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQLpgModeler: muito mais que um modelador de bancos de dados PostgreSQL
pgModeler: muito mais que um modelador de bancos de dados PostgreSQL
 
PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09PHP RESTful Web Services - PHPConf'09
PHP RESTful Web Services - PHPConf'09
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
Fisl banco de dados no sql de código aberto
Fisl   banco de dados no sql de código abertoFisl   banco de dados no sql de código aberto
Fisl banco de dados no sql de código aberto
 
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e ElasticsearchUma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
 
AJAX
AJAXAJAX
AJAX
 
Scraping for fun and glory annotated
Scraping for fun and glory annotatedScraping for fun and glory annotated
Scraping for fun and glory annotated
 
Um milhao de usuários simultâneos
Um milhao de usuários simultâneosUm milhao de usuários simultâneos
Um milhao de usuários simultâneos
 
Scraping for fun and glory
Scraping for fun and gloryScraping for fun and glory
Scraping for fun and glory
 
Introdução a Framework Flask
Introdução a Framework FlaskIntrodução a Framework Flask
Introdução a Framework Flask
 
Django
DjangoDjango
Django
 

Desenvolvendo web crawler/scraper com Python

Notas do Editor

  1. http://www.google.com/insidesearch/howsearchworks/thestory/