2013-02-28 10 views
41

następujące prace kiedy wklej go w przeglądarce:Jak mogę odczytać zawartość adresu URL za pomocą Pythona?

http://www.somesite.com/details.pl?urn=2344 

Ale gdy próbuję czytać URL z Pythona nic się nie dzieje:

link = 'http://www.somesite.com/details.pl?urn=2344' 
f = urllib.urlopen(link)   
myfile = f.readline() 
print myfile 

Czy muszę zakodować URL, czy istnieje coś, czego nie widzę?

Odpowiedz

86

Aby odpowiedzieć na to pytanie:

import urllib 

link = "http://www.somesite.com/details.pl?urn=2344" 
f = urllib.urlopen(link) 
myfile = f.read() 
print myfile 

Musisz read(), nie readline()

Lub po prostu tej biblioteki tutaj: http://docs.python-requests.org/en/latest/ i poważnie go używaj :)

import requests 

link = "http://www.somesite.com/details.pl?urn=2344" 
f = requests.get(link) 

print f.text 
+0

Dzięki Zmieniłem go czytać(), i że wystarczyły –

+0

@HelenNeely cieszyć się programowania podróż – woozyking

+0

dzięki za link do biblioteki 'requests' - jak abstrakcja tam –

-1

URL powinien być ciągiem:

import urllib 

link = "http://www.somesite.com/details.pl?urn=2344" 
f = urllib.urlopen(link)   
myfile = f.readline() 
print myfile 
+8

Zarówno "i" są ciągi w Pythonie – Leons

8

Rozwiązanie z utworami z Pythona 2.x oraz Pythona 3.X korzysta z Python 2 i 3 kompatybilności biblioteki six:

from six.moves.urllib.request import urlopen 
link = "http://www.somesite.com/details.pl?urn=2344" 
response = urlopen(link) 
content = response.read() 
print(content) 
0

Użyłem poniższy kod:

import urllib 

def read_text(): 
     quotes = urllib.urlopen("https://s3.amazonaws.com/udacity-hosted-downloads/ud036/movie_quotes.txt") 
     contents_file = quotes.read() 
     print contents_file 

read_text() 
0

dla python3 użytkowników, aby zaoszczędzić czas, należy użyć następującego kodu

from urllib.request import urlopen 

link = "https://docs.scipy.org/doc/numpy/user/basics.broadcasting.html" 

f = urlopen(link) 
myfile = f.read() 
print (myfile) 

wiem, że są DIF ferent wątki dla błędu: Name Error: urlopen is not defined, ale myślałem, że to może zaoszczędzić czas.

0

Możemy odczytać treść strony html jak poniżej:..

from urllib.request import urlopen 
response = urlopen('http://google.com/') 
html = response.read() 
print(html) 
Powiązane problemy