45
ICE-B 9 - Internet Ludwig Krippahl

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

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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