如何从包含日历的网页获取ics文件的URL?

时间:2017-07-05 18:19:29

标签: python

例如,我有以下包含日历的网页:

https://meded.hms.harvard.edu/calendar

以下是我的代码尝试下载ics:

import urllib2

url = 'https://meded.hms.harvard.edu/calendar'

response = urllib2.urlopen(url)
webContent = response.read()

f = open('calendar.ics', 'w')
f.write(webContent)
f.close

但是,因为我没有指定.ics文件的特定URL,所以它显然下载了一个没有任何内容的文件,所以我无法用iCal之类的东西打开它。我的问题是,如何获取.ics文件的特定URL以便我可以下载它?我试着搜索如何在堆栈溢出上下载特定文件,但所有答案都包含包含该文件的URL,所以我不知道该怎么做。感谢。

1 个答案:

答案 0 :(得分:0)

这种方法给了我一个似乎可以在我的邮件程序上运行的文件,即Mozilla Thunderbird。

>>> import requests
>>> page = requests.get('https://meded.hms.harvard.edu/calendar').content
>>> import bs4
>>> soup = bs4.BeautifulSoup(page, 'lxml')
>>> link = soup.find('a', attrs={'class': 'subscribe'})
>>> link
<a class="subscribe" href="https://meded.hms.harvard.edu/calendar/upcoming/all/export.ics">subscribe</a>
>>> link.attrs['href']
'https://meded.hms.harvard.edu/calendar/upcoming/all/export.ics'
>>> ics = requests.get(link.attrs['href']).content
>>> open('med_school.ics', 'wb').write(ics)
1699