Процесс UrlFetch позволяет работать с различными методами. В настоящий момент на практике проверена работа наиболее часто используемых методов GET и POST, а также менее используемого HEAD. В входной поток могут передавать:
- URL, в этом случае все запросы к серверу будут осуществляться с запросом GET.
data = (
‘http://example.com/page/1/’,
‘http://example.com/page/2/’,
‘http://example.com/page/3/’
)- параметры запроса в виде списка: URL, метод, данные, заголовки.data = (
(‘http://example.com/page/1/’, ‘GET’),
(‘http://example.com/page/1/’, ‘GET’, None, { 'User-Agent' : 'Mozilla/5.0 (compatible)' }),
(‘http://example.com/search’, ‘POST’, {‘s’:’examples’, ‘id’:’1’}),
)Пример кода from processes.urlfetch2 import UrlFetch
urlfetch = UrlFetch()
for d in data:
print d
urlfetch.io['input'].put(d)
urlfetch.run_once()
try:
(url, status_code, content, info) = urlfetch.io['output'].get()
print url, status_code, len(content), info
except:
pass
printВыходной поток не отличаются от своего предшественника UrlFetchGet, на выходе для каждого запроса получаем список из:- URL, не обязательно соответствующий входному URL (для случая redirection)
- STATUS_CODE, результат выполнения, соответствующий одному из HTTP кодов, если значение положительное. И если значение отрицательное, проблема указывается в поле error-msg для INFO. Например, для случая ‘Couldn't resolve host’
- CONTENT, контент соответствующий входному URL
- INFO, дополнительная информация возвращенная сервером: Content-type, Cookie, Last-Modified, Server и т.д.




0 комментариев:
Отправить комментарий