Я пытаюсь open
список URL-адресов этого формата, используя в Urllib2
:Правильный способ исправить URL без HTTP: //
google.com
facebook.com
youtube.com
yahoo.com
baidu.com
Используя этот метод:
urllib2.urlopen(url)
:
И получаю эту ошибку:
File "fetcher.py", line 98, in fetch_urls_and_save
response = urllib2.urlopen(url)
File "urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "urllib2.py", line 423, in open
protocol = req.get_type()
File "urllib2.py", line 285, in get_type
raise ValueError, "unknown url type: %s" % self.__original
Итак, мой вопрос:
Есть ли способ «исправить» эти URL-адреса, или я должен просто добавить http://
перед каждой строкой? Я не думаю, что это было бы лучшим решением, потому что как насчет URL-адресов, начинающихся с https://
?
Просто префикс 'http: //'. Существует сервер, который может говорить HTTP вам, он вернет '200 OK'. Если он хочет поговорить с HTTPS, он перенаправит с помощью '301'. –
Все примеры на этой странице показывают «http: //». https://docs.python.org/2/howto/urllib2.html Lutz правильно, проверьте статус HTTP для перенаправления. –
Вы имеете в виду, что если я получу '301', я должен попробовать' https: // '? Или он будет перенаправлен автоматически? – bmpasini