如何使用python从URL导入ics文件

时间:2018-03-11 01:28:30

标签: python python-requests icalendar urlopen

我正在研究一个项目,而这个api http://icspy.readthedocs.io/en/v0.3.1/似乎很好地实现了我的想法,但是我遇到了一些问题而未能找到解决方案,我希望这是一个可以提出这个问题的地方。 / p>

所以我现在要做的是从URL导入一个ics文件。 (请注意,我已经直接尝试使用物理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(" container isn' t an {}" .format(self._TYPE))

ValueError:容器不是VCALENDAR

我进一步发现,当我用url调用urlopen时,它会返回使用b"

的文件。

实际文件摘要

BEGIN:VCALENDAR 版本:2.0 PRODID: - // hacksw / handcal // NONSGML v1.0 // EN BEGIN:VEVENT

调用urlopen(theurl)

b" BEGIN:VCALENDAR \ rVERSION:2.0 \ rPRODID: - // hacksw / handcal // NONSGML v1.0 // EN \ rBEGIN:VEVENT \ r

我无法摆脱b"在文件的开头我想通过删除我可能能够正确地解析它吗?当我尝试请求时也是如此。当我打印出urlopen(url)时,它会在ics文件中显示一串内容,包括"引号中的ics文件数据"如果有人能就此给我一些建议,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

如何?

import requests text = requests.get(url).text