Форум сайта python.su
0
как сделать также как у google chrome ?
ввел к примеру только google.ru он исправляет на http://www.google.ru/
а если вводиш http://www.google.ru/ то он нечего не исправляет
или если вводиш www.google.ru то исправляет на http://www.google.ru/
Офлайн
72
Добавить схему просто, вам еще на первый такой вопрос посоветовали, воспользуйтесь urlparse из стандартной библиотеки. Разбираете url на части и если scheme пуста, ставите в нее ‘http’ и снова собираете урл.
А вот насчет замены “домен” на “www.домен”, то насколько я понимаю, тут только запросом на на сервер и если возвращается код 301 то меняем и запоминаем для себя. Без этого менять не получится, это могут быть и разные сайты.
Офлайн
0
PooHА без urlparse не как ?
Добавить схему просто, вам еще на первый такой вопрос посоветовали, воспользуйтесь urlparse из стандартной библиотеки. Разбираете url на части и если scheme пуста, ставите в нее ‘http’ и снова собираете урл.А вот насчет замены “домен” на “www.домен”, то насколько я понимаю, тут только запросом на на сервер и если возвращается код 301 то меняем и запоминаем для себя. Без этого менять не получится, это могут быть и разные сайты.
Офлайн
103
def f(s): i = s.find("://")+1 if not i: s = "http://" + s i += 6 if not s[i+2:].find('/')+1: s += '/' return s
a = ["http://www.google.com/", "http://www.google.com", "www.google.com/", "www.google.com", "http://www.google.com/ghsagfhashgf/sahgds", "www.google.com/ghdsghsd/hgagfsagf.hh", "https://www.google.com/", "https://www.google.com", "https://www.google.com/ghsagfhashgf/sahgds"] for i in a: print f(i)
http://www.google.com/ http://www.google.com/ http://www.google.com/ http://www.google.com/ http://www.google.com/ghsagfhashgf/sahgds http://www.google.com/ghdsghsd/hgagfsagf.hh https://www.google.com/ https://www.google.com/ https://www.google.com/ghsagfhashgf/sahgds
Отредактировано terabayt (Ноя. 6, 2014 16:50:58)
Офлайн
0
terabaytа как этот код использовать ?
Офлайн
103
def f_url(s): i = s.find("://")+1 if not i: s = "http://" + s i += 6 if not s[i+2:].find('/')+1: s += '/' return s url="google.ru" url1 = f_url(url)
А вот насчет замены “домен” на “www.домен”, то насколько я понимаю, тут только запросом на на сервер и если возвращается код 301 то меняем и запоминаем для себя. Без этого менять не получится, это могут быть и разные сайты.
Отредактировано terabayt (Ноя. 6, 2014 17:29:47)
Офлайн
0
terabaytТоесть www.**** подставить не получится ?
Отредактировано Egor2010 (Ноя. 18, 2014 16:57:47)
Офлайн
103
можно подставлять сразу www, но не факт что это будет правильный адрес.
Офлайн
0
Вот ошибка выполнения
>>> url="//bits.wikimedia.org/favicon/wikipedia.ico"
>>> f_url(url)
'http:////bits.wikimedia.org/favicon/wikipedia.ico'
Офлайн
103
а что должно быть? у меня firefox делает переадресацию на
file:////bits.wikimedia.org/favicon/wikipedia.ico
Офлайн