2013-12-23 2 views
0

Я пытаюсь написать код, который может открыть URL-соединение и прочитать текст из ответа. Я пробовал:Как открыть исходный код URL?

import urllib 

urllib.urlopen('http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345') 

Но это дает мне эту ошибку:

Traceback (most recent call last): 
    File "<pyshell#40>", line 1, in <module> 
    urllib.urlopen('http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345') 
AttributeError: 'module' object has no attribute 'urlopen' 

Что случилось с моим кодом и что такое решение проблемы?

+0

Там нет такого понятия, как "URL исходного кода". Вы хотите сказать, что хотите сделать HTTP-запрос указанному URL-адресу и вернуть тело сообщения ответа в виде строки? Для типичного веб-сайта это означает, что в результате вы получите HTML-документ. –

ответ

4

Я думаю, проблема в том, что вы находитесь на Python 3.x, но используете код, который работает только на 2.x.

В Python 3.x, функция urlopen содержится в urllib.request:

>>> from urllib.request import urlopen 
>>> urlopen 
<function urlopen at 0x020DA7C8> 
>>> 

Edit:

Я думаю, что это делает все, что вы хотите:

from urllib.request import urlopen 
page = urlopen('http://www.pythonchallenge.com/pc/def/linkedlist.php?nothing=12345').read() 
print(page) 
+0

Как работает этот код? –

+0

@RainTenno - Я говорю, что я думаю, вам нужно импортировать модуль 'urllib.request', чтобы использовать функцию' urlopen'. Прямо сейчас, вы просто импортируете 'urllib'. – iCodez

+0

Я просто не понимаю, как работает этот код. Можете ли вы написать код, который откроет мой url и преобразует исходный код в str? –

2

Попробуйте «запросы». С ним работать гораздо проще.

http://www.python-requests.org/en/latest/user/quickstart/

import requests 
r = requests.get('http://www.pythonchallenge.com/pc/def/linkedlist.php', params={ 
    'nothing':'12345' 
}) 
print r.text 
+0

Я пытался установить запросы, но он не работает ( –

+0

Oleksandr, вы используете pip? 'Pip install requests' должны это делать. – feathj

Смежные вопросы