Функции для загрузки сетевых объектов 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Функции для загрузки сетевых объектов

Поиск

Функции для загрузки сетевых объектов

 

Простой случай полученияWWW-объекта по известномуURLпоказан в следующем примере:

 

import urllib

 

doc = urllib.urlopen("http://python.onego.ru").read() print doc[:40]

 

Функция urllib.urlopen() создает файлоподобный объект,который читает методом read().Другие методы этого объекта:readline(),readlines(),fileno(),close()

 

работают как и у обычного файла,а также есть метод info(),который возвращает соответствующий полученному с сервераMessage-объект.Этот объект можно использовать для получения дополнительной информации:

 

>>> import urllib

>>> f = urllib.urlopen("http://python.onego.ru")

 


>>> print f.info()

 

Date: Sat, 25 Dec 2004 19:46:11 GMT Server: Apache/1.3.29 (Unix) PHP/4.3.10

 

Content-Type: text/html; charset=windows-1251 Content-Length: 4291

 

>>> print f.info()['Content-Type'] text/html; charset=windows-1251

 

С помощью функции urllib.urlopen() можно делать и более сложные вещи,например,

 

передаватьweb-серверу данные формы.Как известно,данные заполненнойweb-формы могут быть переданы наweb-сервер с использованием методаGETили методаPOST.МетодGET связан с кодированием всех передаваемых параметров после знака "?" в URL, а при методеPOSTданные передаются в телеHTTP-запроса.Оба варианта передачи представлены ниже:

 

import urllib

 

data = {"search": "Python"} enc_data = urllib.urlencode(data)

 

# метод GET

 

f = urllib.urlopen("http://searchengine.com/search" + "?" + enc_data) print f.read()

 

# метод POST

 

f = urllib.urlopen("http://searchengine.com/search", enc_data) print f.read()

 

В некоторых случаях данные имеют повторяющиеся имена.В этом случае в качестве

 

параметра urllib.urlencode() можно использовать вместо словаря последовательность пар имя-значение:

 

>>> import urllib

>>> data = [("n", "1"), ("n", "3"), ("n", "4"), ("button", "Привет"),]

>>> enc_data = urllib.urlencode(data)

>>> print enc_data

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 54; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.008 с.)