例如,我有以下包含日历的网页:
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,所以我不知道该怎么做。感谢。
答案 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