O seguinte funciona quando eu colo no navegador:
http://www.somesite.com/details.pl?urn=2344
Mas quando tento ler o URL com Python, nada acontece:
link = 'http://www.somesite.com/details.pl?urn=2344'
f = urllib.urlopen(link)
myfile = f.readline()
print myfile
Preciso codificar o URL ou há algo que não estou vendo?
requests
Module, seu uso rende para um código mais Pythônico.Traceback (most recent call last): File "/home/lars/parser.py", line 9, in <module> f = urllib.urlopen(link) AttributeError: module 'urllib' has no attribute 'urlopen'
Parece que não há função urlopen no python 3.5. Foi renomeado? EDIT: O snippet na resposta abaixo resolve:from urllib.request import urlopen
urlib
pacote viu algumas mudanças de refatoração e API. Vou atualizar a resposta para enfatizar no Python 2.Para os
python3
usuários, para economizar tempo, use o seguinte código,Eu sei que existem diferentes tópicos para erro
Name Error: urlopen is not defined
:, mas pensei que isso poderia economizar tempo.fonte
Uma solução que funciona com Python 2.X e Python 3.X usa a biblioteca de compatibilidade Python 2 e 3
six
:fonte
Nenhuma dessas respostas é muito boa para Python 3 (testado na versão mais recente até o momento desta postagem).
É assim que se faz...
O texto acima é para conteúdos que retornam 'utf-8'. Remova .decode ('utf-8') se quiser que o python "adivinhe a codificação apropriada".
Documentação: https://docs.python.org/3/library/urllib.request.html#module-urllib.request
fonte
Podemos ler o conteúdo html do site conforme abaixo:
fonte
O URL deve ser uma string:
fonte
Usei o seguinte código:
fonte
fonte
fonte
fonte
Você pode usar
requests
ebeautifulsoup
bibliotecas para ler dados em um site. Basta instalar essas duas bibliotecas e digitar o código a seguir.Você obterá todas as informações de que precisa sobre a biblioteca.
fonte
help
é usado para ver a documentação de determinado módulo / classe / função. Acho que essa pergunta pede uma maneira de ver o conteúdo da resposta