Python 3 web - загрузка страницы или файла по его url
В Python 3 для web немного изменился синтаксис загрузки информации. Ниже приведена функция позволяющая загрузить любые данные доступные без авторизации не зависимо от того файл это или страница.
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import urllib.request
def GetURL(url):
s = 'error'
try:
f = urllib.request.urlopen(url)
s = f.read()
except urllib.error.HTTPError:
s = 'connect error'
except urllib.error.URLError:
s = 'url error'
return s
print (GetURL('http://wd5.ru/'))
Внимание: в python 3 различается в бинарном или в текстовом режиме передается информация. В данном случае информация передается в бинарном режиме.
Для сохранения в текстовом виде необходимо декодировать информацию в нужной кодировке. Для сохранения сразу в файл нужно просто записывать данные, но обязательно в бинарном режиме флаг ‘wb’