По всей видимости, ЯндексПогода принимает вашу программу за бота и сбрасывает соединение. Чтобы этого избежать, нужно притвориться браузером, т.е. сделать так, чтобы отправляемый программой http-запрос имел заголовок User-agent. Плюс может потребоваться запрашивать данные несколько раз по этой же причине (вылезает ошибка RemoteDisconnected). Я использовал сессии, получилось.
import requests
headers = {'User-agent':'Mozilla/5.0','Referer':'http://www.python.org/'}
session = requests.Session()
adapter = requests.adapters.HTTPAdapter(max_retries=10)
session.mount('http://', adapter)
# запрашиваем нужные урлы
for url in urls:
response = session.request('GET', url, headers = headers)
# делаем что-то с response...
reponse.close()
session.close()
Ещё могут быть проблемы из-за старой версии Питона, писал в 2.7 через urllib2 - не работало, в 3.5 - все норм.