Suponha que o seguinte trecho de código em Python 3 seja ex...
Suponha que o seguinte trecho de código em Python 3 seja executado com sucesso:
import urllib.request
site=urllib.request.urlopen("http://site.ufsm.br")
Considere as afirmações a seguir.
I → Os atributos site.code e o método site.getcode( ) apresentam o mesmo valor.
II → É possível visualizar o código-fonte ao executar str(site).
III → O método site.info( ) armazena metainformações da página acessada, como os cabeçalhos HTTP.
IV → Ao acessar o conteúdo armazenado em site.info( )['Date'] é possível identificar a data em que a requisição HTTP foi realizada pelo cliente.
Estão corretas
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: B - apenas I e III.
A questão exige conhecimento sobre a biblioteca urllib.request do Python 3, que é utilizada para abrir e ler URLs. Vamos analisar cada afirmação para entender o gabarito:
- I → Os atributos site.code e o método site.getcode() apresentam o mesmo valor.
Esta afirmação é verdadeira. O atributosite.code
e o métodosite.getcode()
retornam o mesmo valor, que é o código de status HTTP da resposta recebida. Por exemplo, se a página foi acessada com sucesso, ambos devem retornar o código 200. - II → É possível visualizar o código-fonte ao executar str(site).
Esta afirmação é falsa. Executarstr(site)
não retornará o código-fonte da página; isso retornará uma representação em string do objeto de resposta HTTP. Para acessar o conteúdo da página, você usaria o métodosite.read()
ousite.read().decode('utf-8')
para obter o código-fonte HTML da página. - III → O método site.info() armazena metainformações da página acessada, como os cabeçalhos HTTP.
Esta afirmação é verdadeira. O métodosite.info()
realmente retorna um objeto que contém os cabeçalhos HTTP da resposta e é semelhante a um dicionário. - IV → Ao acessar o conteúdo armazenado em site.info()['Date'] é possível identificar a data em que a requisição HTTP foi realizada pelo cliente.
Esta afirmação é falsa. O cabeçalho 'Date' em uma resposta HTTP geralmente indica a data e a hora em que a mensagem foi enviada pelo servidor, não quando a requisição foi realizada pelo cliente.
Então, baseando-nos na análise das afirmações, a alternativa correta é a B, já que apenas as afirmações I e III estão corretas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
II: ERRADO. Não É possível visualizar o código-fonte ao executar str(site). Quando você executa o programa, a saída será site
IV: ERRADO. Ao acessar o conteúdo armazenado em site.info( )['Date'] não é possível identificar a data em que a requisição HTTP foi realizada pelo cliente. As bibliotecas http do Python não suportam a verificação de data da última modificação, mas o httplib2 fazem.
como que o cidadão ia saber esses detalhes do urllib no dia da prova, considerando que há inúmeras outras bibliotecas no Python?
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo