@Kosyak26

Как подогнать путь к файлу сайта под нужный формат Python?

Доброго времени суток, уже несколько суток ломаю голову над задачей.
Задание состоит в следующем:
На входе нам дают большой список сайтов, (формата site.com, https://site.com, www.site.com)
Требуется все сайты перевести в нужный формат (https://site.com) что бы в последствии достать содержимое файла ads.txt.
Например через requests я могу файл достать только указав полный путь https://site.com/ads.txt. Но не могу по пути site.com/ads.txt
Помогите, подкиньте идей. В каком направлении мне двигаться? Может использовать что то другое? не хочется писать огромные конструкции
  • Вопрос задан
  • 114 просмотров
Решения вопроса 2
SoreMix
@SoreMix Куратор тега Python
yellow
Вставить протокол через regex
Ответ написан
Комментировать
@dzhebrak
Если вариант с regex не подходит, то можно разбить каждую строку с помощью urllib.parse и затем собрать обратно, как нужно:
from urllib.parse import urlparse

def parse_domain(line):
	scheme, netloc, path, params, query, fragment = urlparse(line)
	path = path.split('/', 1)[0].strip('/')

	# fix для site.com
	if scheme == '' and netloc == '':
		netloc = path

	if scheme == '':
		scheme = 'http'

	# в дальнейшем может не сработать, если сайт доступен только по www и не настроен редирект с варианта без www
	if netloc.startswith('www.'):
		netloc = netloc[4:]

	return '{}://{}'.format(scheme, netloc)

Тест:
https://site.com/ -> https://site.com
www.site.com/ -> http://site.com
www.site.com -> http://site.com
site.com -> http://site.com
http://site.com -> http://site.com
site.com/test/ -> http://site.com
site/com/ -> http://site
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы