Я работаю над проектом, и этот api http://icspy.readthedocs.io/en/v0.3.1/ кажется хорошим для реализации идеи, которая у меня есть, однако я столкнулся с некоторыми проблемами и не смог найти решение, и я надеюсь, что это место, где можно спросить об этом.
Итак, сейчас я пытаюсь импортировать файл ics из URL-адреса. (Обратите внимание, что я пробовал напрямую использовать физический файл ics, и он отлично работает).
Используя предоставленный образец кода
from ics import Calendar
from urllib2 import urlopen # import requests
url = "http://ical.keele.ac.uk/index.php/ical/ical/15021113"
c = Calendar(urlopen(url).read().decode('iso-8859-1'))
И я получаю сообщение об ошибке.
ValueError ("контейнер не является {}". Format (self._TYPE))
ValueError: контейнер не является VCALENDAR
Далее я обнаружил, что когда я вызываю urlopen с URL-адресом, он возвращает файл, запрашивающий с помощью b "
Фактический фрагмент файла
НАЧАТЬ: ВКАЛЕНДАРЬ ВЕРСИЯ: 2.0 PRODID: - // hacksw / handcal // NONSGML v1.0 // EN НАЧАТЬ: ВЕВЕНТ
При вызове urlopen (theurl)
b "BEGIN: VCALENDAR \ rVERSION: 2.0 \ rPRODID: - // hacksw / handcal // NONSGML v1.0 // EN \ rBEGIN: VEVENT \ r
Мне не удалось избавиться от символа b "в начале файла, и я думаю, удалив его, я смогу правильно его проанализировать? Тот же случай, когда я пытался с запросом. Когда я распечатываю просто urlopen (url ) он показывает строку содержимого файла ics, которая включает «данные файлов ics в кавычках». Буду признателен, если кто-нибудь даст мне совет по этому поводу.






Как насчет этого:
import requests
text = requests.get(url).text