3.2 Pacotes httr, xml2 e rvest
Esses são os três pacotes mais modernos do R para fazer web scraping.
O pacote
xml2tem a finalidade de estruturar arquivos HTML ou XML de forma eficiente, tornando possível a obtenção de tags e seus atributos dentro de um arquivo.O pacote
httré responsável por realizar requisições web para obtenção das páginas de interesse, buscando reduzir ao máximo a complexidade da programação.O pacote
rvesté escrito sobre os dois anteriores e por isso eleva ainda mais o nível de especialização para raspagem de dados.Esses pacotes não são suficientes para acessar todo tipo de conteúdo da web. Não discutiremos
seleniumnesse curso, mas caso queira se aprofundar, acesse aqui e o pacoteRSelenium.
3.2.1 GET e POST
Uma requisição GET envia uma
urlao servidor, possivelmente com alguns parâmetros nessaurl(que ficam no final daurldepois do?). O servidor, por sua vez, recebe essaurl, processa os parâmetros e retorna uma página HTML para o navegador.A requisição
POSTenvia umaurlnão modificada para o servidor, mas envia também uma lista de dados preenchidos pelo usuário, que podem ser números, textos ou até imagens. Na maioria dos casos, ao submeter um formulário de um site, fazemos uma requisiçãoPOST.O
httrpossui os métodosGETePOSTimplementados e são muito similares. A lista de parâmetros enviados pelo usuário pode ser armazenado numalistnomeada, e adicionado aoGETpelo parâmetroqueryou noPOSTpelo parâmetrobody.
Exemplo de GET
httr::GET("http://google.com/search",
query = list(q = "jurimetria"))#> Response [http://www.google.com/search?q=jurimetria]
#> Date: 2018-05-22 14:43
#> Status: 200
#> Content-Type: text/html; charset=ISO-8859-1
#> Size: 38.3 kB
#> <!doctype html><html itemscope="" itemtype="http://schema.org/SearchResu...
#> no Direito. Índice. [esconder]. 1 Histórico; 2 Os Três Prismas da <b>Jur...
#> softwares jurídicos para prever resultados.</span><br></div></div><div c...
#> Webinar: Tabelas Processuais Unificadas On-line. 02 jul. Webinar: Estrut...
#> números e da tecnologia para o jurídico da empresa. Leonardo Barém Leite...
#> <b>Jurimetria</b>.</span><br></div></div><div class="g"><h3 class="r"><a...
#> ayuda a afrontar con fiabilidad el mejor planteamiento procesal.</span><...
#> a todo esforço de pesquisa empírica séria é que ninguém muda aquilo que&...
#> Brasileira de <b>Jurimetria</b>, Marcelo Guedes Nunes, que lançou o ...
Exemplo de POST
httr::POST("http://httpbin.org/post",
body = list(x = "Mãe to na request"),
encode = "json")#> Response [http://httpbin.org/post]
#> Date: 2018-05-22 14:43
#> Status: 200
#> Content-Type: application/json
#> Size: 429 B
#> {"args":{},"data":"{\"x\":\"M\u00e3e to na request\"}","files":{},"form"...
3.2.2 Exercícios
Use o Inspect:
- Qual o método usado na pesquisa de jurisprudência do TJSP?
- Qual o método usado na busca avançada de diários de justiça do TJSP?