9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf ·...
-
Upload
phungthien -
Category
Documents
-
view
240 -
download
0
Transcript of 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf ·...
![Page 1: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/1.jpg)
ICE-B
9 - Internet
Ludwig Krippahl
![Page 2: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/2.jpg)
1
Internet
Resumo■ Introdução às redes de computadores e à Internet■ Obtenção de dados da Internet usando Python■ Exemplo: contar prémios Nobel por país
![Page 3: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/3.jpg)
2
Internet
Redes de computadores
![Page 4: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/4.jpg)
3
Redes
Uma rede permite partilhar recuros e informação■ Infraestrutura de troca de
mensagens■ Liga computadores para
trocar informação epartilhar recursos
■ E.g. Pesquisa no Google:• Enviamos a pergunta• Usamos os servidores• Obtemos o resultado
Image: Mauro Bieg, public domain
![Page 5: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/5.jpg)
4
Redes
Transferência entre dois computadores■ Emissor: produz e envia uma mensagem (sequência de bytes)■ Receptor: recebe a sequência de bytes■ Rede: infraestrutura que inclui:• Meios de ligação (cabos, fibra óptica, radio, satélite)• Computadores dedicados a encaminhar a mensagem
Rede de computadores ⇐ ⇒
![Page 6: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/6.jpg)
5
Redes
Rede local (LAN, Local Area Network)■ Os computadores estão ligados directamente• cada um pode enviar bytes directamente a qualquer outro.
■ Distância entre computadores tipicamente menor que 1km.Rede de larga escala (WAN, Wide Area Network)■ Emissor e o destinatário estão em redes locais distintas■ É preciso encaminhar os bytes por equipamento especializado
(routers e gateways) que escolhem o caminho até ao destino final• Router gere ligação entre computadores numa rede ou redes do mesmo tipo
• Gateway é um router que interliga redes diferentes (converte protocolos)
![Page 7: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/7.jpg)
6
Redes
Mensagens em pacotes■ Para chegar ao destinatário, a mensagem é enviada em pacotes
endereçados• Cada computador tem o seu endereço, normalmente da rede local
■ Os pacotes são encaminhados individualmente pela rede da origematé ao destino
• Pela rede de larga escala são reencaminhados entre routers e gateways
• O router final encaminha os pacotes para o computador destinatário
■ O destinatário depois reconstroi a mensagem a partir dos pacotes
![Page 8: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/8.jpg)
7
Redes
Interligação de redes■ 2 LAN ligadas por 3 routers
![Page 9: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/9.jpg)
8
Internet
Rede de redes locais com protocolos próprios■ Todos os computadores têm um endereço IP (Internet Protocol)■ Se dentro da LAN o router envia o pacote directamente■ Se estiver noutra LAN, terá de passar por vários routers• Tipicamente, a LAN tem apenas um endereço para o exterior
• O router tem de traduzir os endereços (NAT, Network Address Translation)
■ Os routers propagam o pacote até ao router da LAN do destinatário
![Page 10: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/10.jpg)
9
Internet
Protocolos da Internet■ Nível físico• Sinais entre os nós da rede• Modulação e conversão: fibra óptica, telefone, cabo• Transmissão ao nível do bit (0 ou 1)• Exemplo: Wi-Fi, 2.4 GHz e 5.8 GHz
![Page 11: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/11.jpg)
10
Internet
Protocolos da Internet■ Nível físico■ Nível de ligação• Transmissão de conjuntos de bits entre nós da rede• Correcção de erros, gestão de filas de espera, ...• Exemplo: IEEE 802.11, para wireless LAN
![Page 12: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/12.jpg)
11
Internet
Protocolos da Internet■ Nível físico■ Nível de ligação■ Nível IP (Internet Protocol)• Gere os pacotes de bytes, endereçamento e reencaminhamento
• A informação é dividida em pacotes (sequências de bytes), encaminhadosindividualmente ao destino.
• Cada máquina tem um endereço e cada pacote tem o endereço do destinatário
• IPv4 (1983): 4 bytes (32 bits), normalmente repetido em redes locais porque sópermite 400 milhões de endereços únicos
• e.g. 127.0.0.1 é o próprio computador, 192.168.1.1 costuma ser o router
• IPv6: 16 bytes (128 bits), suficiente para atribuir endereços únicos3 × 1038
![Page 13: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/13.jpg)
12
Internet
Protocolos da Internet■ Nível físico■ Nível de ligação■ Nível IP (Internet Protocol)■ Nível de transporte (TCP).• Transmission Control Protocol
• Gere o transporte de dados, encarregando-se da gestão de pacotes e detecção erecuperação de erros.
![Page 14: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/14.jpg)
13
Internet
Protocolos da Internet■ Nível físico■ Nível de ligação■ Nível IP (Internet Protocol)■ Nível de transporte (TCP).■ Nível da aplicação• Protocolos destinados a gerir a comunicação entre aplicações ou com o utilizador.
• E.g HTTP, DNS, ...
![Page 15: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/15.jpg)
14
Internet
Protocolos da Internet
![Page 16: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/16.jpg)
15
Internet
Protocolos da Internet■ Normalmente não usamos os endereços IP■ Em vez disso, usamos endereços simbólicos associados:• e.g. www.google.com
■ O DNS (Domain Name System) é um sistema hierárquico deservidores que mapeia os endereços simbólicos em endereços IP
• Nomes genéricos de domínio: com biz edu info gov mil• Nomes de domínio de países: pt au us de fr• ...
![Page 17: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/17.jpg)
16
Internet
Protocolos da Internet: DNS
Wikimedia, Public Domain
![Page 18: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/18.jpg)
17
Internet
Protocolos da Internet: DNS■ Sistema hierárquico de servidores que mapeia os endereços
simbólicos em endereços IP
Wikimedia, Public Domain
![Page 19: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/19.jpg)
18
Internet
Protocolos da Internet: DNS■ Em Março 2015 um memorando de entendimento entre ISP, IGAC
e SGC passou a permitir "bloquear" sites que os envolvidosconsiderem piratas.
■ Mas apenas configuram os servidores DNS para não resolver osnomes desses sites
■ Assim, o “bloqueio” pode ser facilmente contornado usando outroservidor DNS
• E.g. Google: 8.8.8.8, Open DNS: 208.67.222.222
■ A natureza distribuida da Internet e o uso de multiplos níveis deprotocolos torna-a muito robusta e versátil
• E.g. Por VPN podemos criar uma rede privada sobre a rede pública
![Page 20: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/20.jpg)
19
Internet
Isto permitiu o enorme crescimento da Internet
■ Cerca de 50% das pessoas no mundo têm ligação à Internet(Internet World Stats)
![Page 21: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/21.jpg)
20
Internet
CodyHofstetter CC-SA
![Page 22: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/22.jpg)
21
Internet
World Wide Web
![Page 23: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/23.jpg)
22
WWW
A WWW é uma rede montada sobre a Internet■ 1989: Tim Berners-Lee (CERN) escreve proposta para sistema
distribuído de hiper-texto• Ligar uma “web of notes with links” para ajudar os físicos do CERN a partilhar
informação em grandes projectos.
■ 1990: Cria um browser com interface gráfica.Componentes da World Wide Web:■ Web, "teia" de documentos interligados e sofware para os gerir.■ Potocolos de aplicação que gerem a partilha da informação.■ Página Web: documento, normalmente ligado a outros
documentos.■ Link: Ligação entre duas páginas Web.
![Page 24: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/24.jpg)
23
WWW
A WWW é uma rede montada sobre a Internet■ Site web: Conjunto de páginas Web relacionadas.• Normalmente guardadas na mesma máquina, mas também podem estar
distribuídas na "cloud"
■ Servidor Web - servidor• Programa que responde a
pedidos de acesso às páginasWeb.
■ Browser Web - cliente• Ferramenta que pede páginas
Web e as mostra. David Vignoni, LGPL
![Page 25: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/25.jpg)
24
WWW
A WWW é uma rede montada sobre a Internet■ Três elementos centrais da World Wide Web:• Uniform Resource Locator (URL)• HTML: linguagem das páginas Web• HTTP / HTTPS: Hypertext Transfer Protocol (Secure), sobre TCP/IP
■ URL: especifica a localização de um recurso.• Protocolo (pode ser omitido), nome da máquina, recurso (e.g. ficheiro)
![Page 26: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/26.jpg)
25
WWW
Hypertext Markup Language (HTML)■ Linguagem usada para criar páginas Web.■ Tags: Especificam como o browser deve representar a página.
![Page 27: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/27.jpg)
26
WWW
Hypertext Markup Language (HTML)■ Tags (marcas): Colocadas entre os símbolos < e >■ A marca final distingue-se da inicial pela </..>■ Elementos são definidos por uma marca inicial e final• e.g. <TITLE>Título</TITLE>
<h3> Hypertext Markup Language (HTML)</h3>
<ul><li>Tags (marcas): Colocadas entre os símbolos < e ></li>
<li>A marca final distingue-se da inicial pela </..></li>
<li>Elementos são definidos por uma marca inicial e final</li>
<ul><li>e.g. <code><TITLE>Título</TITLE></code></li>
</ul></ul>
![Page 28: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/28.jpg)
27
WWW
Hypertext Transfer Protocol (HTTP)
![Page 29: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/29.jpg)
28
WWW
Hypertext Transfer Protocol, status codes■ 200 OK■ 403 Forbidden■ 404 Not Found■ 451 Unavailable For Legal Reasons• Referência a Fahrenheit 451, Ray Bradbury
■ 500 Internal Server Error■ 503 Service Unavailable■ Ver mais em:
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
![Page 30: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/30.jpg)
29
Internet
Para que serve isto?
![Page 31: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/31.jpg)
30
Dados remotos
■ Exemplo: Quantos prémios Nobel da Química por país?
https://en.wikipedia.org/wiki/List_of_Nobel_laureates_in_Chemistry
![Page 32: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/32.jpg)
31
Dados remotos
■ Exemplo: Quantos prémios Nobel da Química por país?
... <table class="wikitable sortable"> <tr> <th>Year</th> <th colspan="2">Laureate</th> <th>Country</th> <th>Rationale</th> </tr> <tr> <td>1901</td> <td><a href="/wiki/File:Vant_Hoff.jpg" class="image">... <td><a href="/wiki/Jacobus_Henricus_van_%27t_Hoff" ... <td><span class="flagicon"><img alt="" src="...""> </span> <a href="/wiki/Netherlands" title="Netherlands">Netherlands</a></td> <td>[for his] discovery of the laws of <a href="/wiki/Chemical_dynamics"... </tr> <tr> <td>1902</td> ... </table>
![Page 33: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/33.jpg)
32
Dados remotos
■ Exemplo: Quantos prémios Nobel da Química por país?■ Células entre <td> e </td>■ A que começa por <span class="flagicon" é a do país■ O país está a seguir ao quarto > dentro da célula
... <table class="wikitable sortable"> ... <td>1901</td> <td><a href="/wiki/File:Vant_Hoff.jpg" class="image">... <td><a href="/wiki/Jacobus_Henricus_van_%27t_Hoff" ... <td><span class="flagicon"><img alt="" src="...""> </span> <a href="/wiki/Netherlands" title="Netherlands">Netherlands</a></td> <td>[for his] discovery of the laws of <a href="/wiki/Chemical_dynamics"... ... </table>
![Page 34: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/34.jpg)
33
Dados remotos
Plano do programa:■ Obter o código fonte da página HTML da Wikipedia■ Extraír todos os países de todos os laureados■ Obter daí lista, alfabética, dos países com premiados■ Contar para cada país quantos laureados teve■ Imprimir tudo
![Page 35: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/35.jpg)
34
Dados remotos
Em Python é fácil usar HTTP■ O módulo requests tem uma interface HTTP/HTTPS■ Podemos obter facilmente o código fonte da página:
In : import requests In : r = requests.get('https://...Nobel_laureates_in_Chemistry') In : r.text Out: '<!DOCTYPE html>\n<html class="client-nojs" lang="en" dir="ltr">\n<head>\n<meta charset="UTF-8"/>\n<title> List of Nobel laureates in Chemistry - Wikipedia</title>\n <script>document.documentElement.className = ...''
■ Este objecto do tipo Response tem outros atributos úteis:
In : r.ok Out: True In : r.status_code Out: 200
![Page 36: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/36.jpg)
35
Dados remotos
■ Extraír países da tabela• Células entre <td> e </td>• A que começa por <span class="flagicon" é a do país• O país está a seguir ao quarto > dentro da célula
def all_countries(html): """Return list of all countries in Wikipedia Nobel html table""" cells = html.split('<td>') countries = [] for cell in cells: if cell.startswith('<span class="flagicon"'): countries.append(cell.split('>')[4].split('<')[0]) return countries
<td><a href="/wiki/File:Vant_Hoff.jpg" class="image">... <td><a href="/wiki/Jacobus_Henricus_van_%27t_Hoff" ... <td><span class="flagicon"><img alt="" src="...""> </span> <a href="/wiki/Netherlands" title="Netherlands">Netherlands</a></td> <td>[for his] discovery of the laws of <a href="/wiki/Chemical_dynamics"...
![Page 37: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/37.jpg)
36
Dados remotos
■ Testamos o código, confirmando que temos todos os países
def all_countries(html): """Return list of all countries in Wikipedia Nobel html table""" table = html.split('<table class="wikitable sortable">')[1] table.split('</table>')[0] cells = table.split('<td>') countries = [] for cell in cells: if cell.startswith('<span class="flagicon"'): countries.append(cell.split('>')[4].split('<')[0]) return countries
In : r = requests.get('https://...Nobel_laureates_in_Chemistry') In : countries = all_countries(r.text) Out: ['Netherlands', 'Germany', 'Sweden', 'United Kingdom', 'Germany', 'France' 'Germany', 'United Kingdom', 'Germany', 'Germany', 'Poland', 'France', 'France', 'Switzerland', 'United States', 'Germany', 'Germany', 'Germany' 'United Kingdom', 'United Kingdom', 'Austria', 'Germany', 'Sweden', 'Germany', 'Germany', 'United Kingdom', 'Sweden', 'Germany', 'Germany', 'Germany', 'United States', 'United States', 'France', 'France', ...]
![Page 38: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/38.jpg)
37
Dados remotos
■ Países diferentes, por ordem alfabética• Basta usar o sort da lista, que ordena a lista
def unique_countries(countries): """Return unique countries in list, sorted alphabetically""" unique = [] for c in countries: if c not in unique: unique.append(c) unique.sort() return unique
In : names = unique_countries(countries) Out: ['Argentina', 'Australia', 'Austria', 'Belgium', 'Canada', 'Croatia', 'Czechoslovakia', 'Denmark', 'Finland', 'France', 'Germany', 'Israel', 'Italy', 'Japan', 'Mexico', 'Netherlands', 'Norway', 'Poland', 'Soviet Union', 'Sweden', 'Switzerland', 'United Kingdom', 'United States', 'West Germany', 'Yugoslavia']
![Page 39: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/39.jpg)
38
Dados remotos
■ Contar quantas vezes ocorre cada país• Começamos com uma lista a zeros, vamos somando no sítio certo
def count_per_category(values, categories): """Return number of occurrences of each category in values""" counts = [] for _ in categories: counts.append(0) for v in values: ix = categories.index(v) counts[ix] = counts[ix]+1 return counts
In : counts = count_per_category(countries,names) Out: [1, 1, 1, 1, 4, 1, 1, 1, 1, 8, 21, 4, 1, 7, 1, 4, 1, 1, 1, 5, 5, 26, 69, 10, 1]
![Page 40: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/40.jpg)
39
Dados remotos
■ Laureados por país, juntar tudo
def laurates_per_country(url): """Returns string with laureates per country from wiki page""" r = requests.get(url) if not r.ok: return 'Error getting data' countries = all_countries(r.text) names = unique_countries(countries) counts = count_per_category(countries,names) table = '' for ix in range(len(names)): table = table + names[ix] +'\t'+str(counts[ix])+'\n' return table
In : chemistry = laurates_per_country('https://...Nobel_laureates_in_Chemistry'In : print(chemistry) Argentina 1 Australia 1 ... United States 69 West Germany 10 Yugoslavia 1
![Page 41: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/41.jpg)
40
Dados remotos
■ Como estas páginas têm o mesmo formato, funciona com outras:
In : physics = laurates_per_country('https://...Nobel_laureates_in_Physics') In : print(physics) Australia 2 Austria 3 Austria-Hungary 1 Belgium 1 Canada 4 ... Netherlands 9 Pakistan 1 Poland 1 Republic of China 3 Russia 5 Soviet Union 7 Sweden 4 Switzerland 4 United Kingdom 22 United States 78 West Germany 9
![Page 42: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/42.jpg)
41
Dados remotos
■ Como estas páginas têm o mesmo formato, funciona com outras:
In : medicine = laurates_per_country('https://...Nobel_laureates_in_Medicine') In : print(medicine) Argentina 2 Australia 6 Austria 4 Austria-Hungary 1 ... Norway 2 Portugal 1 Romania 1 Russia 2 South Africa 3 Spain 1 Sweden 7 Switzerland 7 United Kingdom 26 United States 90 Venezuela 1 West Germany 4
![Page 43: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/43.jpg)
42
Internet
Resumo
![Page 44: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/44.jpg)
43
Internet
Resumo■ Internet: rede de redes de computadores• Diferentes níveis de protocolos "empilhados" permitem abstraír dos detalhes
■ World Wide Web: rede de documentos• Construída sobre a Internet (URL, HTTP, HTML)
■ Acesso a recursos na WWW, tipicamente em HTML• Módulo requests• Processar html (processar strigs)
Leitura adicional:■ Recomendada: Capítulo 9 dos apontamentos■ Opcional: documentação do módulo requests• http://docs.python-requests.org/en/master/
![Page 45: 9 - Internet - iceb.ssdi.di.fct.unl.pticeb.ssdi.di.fct.unl.pt/1718/files/ICE-B-09.pdf · Introdução às redes de computadores e à Internet Obtenção de dados da Internet usando](https://reader031.fdocuments.net/reader031/viewer/2022031801/5c2658ce09d3f2ae178c5de7/html5/thumbnails/45.jpg)