如何使用Python获取包含.ics文件的HTML href属性的URL?
我试图从包含如何使用Python获取包含.ics文件的HTML href属性的URL?,python,html,Python,Html,我试图从包含.ics日历的网页中获取.ics文件的URL。例如,但它应该适用于任何包含.ics的网页。 下面是我天真的尝试(没有打印任何内容,我也不知道为什么): 我做错了什么,还有什么更好的方法来获取我正在查找的.ics文件的URL?代码中的中断将在一次迭代后停止脚本,您需要再次缩进脚本,将其放入if(或者使用return)。当前,无论的结果如何,如果无效,它都将为中断 还有第二个问题,即有元素没有href属性,这将导致脚本在到达任何链接之前失败。ics链接: if link.get('hre
.ics
日历的网页中获取.ics
文件的URL。例如,但它应该适用于任何包含.ics
的网页。
下面是我天真的尝试(没有打印任何内容,我也不知道为什么):
我做错了什么,还有什么更好的方法来获取我正在查找的
.ics
文件的URL?代码中的中断将在一次迭代后停止脚本,您需要再次缩进脚本,将其放入if
(或者使用return
)。当前,无论<代码>的结果如何,如果<代码>无效,它都将为<代码>中断<代码>
还有第二个问题,即有
元素没有href
属性,这将导致脚本在到达任何链接之前失败。ics链接:
if link.get('href')[-4:]=='.ics':
TypeError: 'NoneType' object has no attribute '__getitem__'
例如:
<a name="main-content"></a>
<a class="cal-export" title="Note: Past events are not included">Export</a>
谢谢你给我一个很好的,简洁的回答。
<a name="main-content"></a>
<a class="cal-export" title="Note: Past events are not included">Export</a>
import urllib2
import requests
import bs4
def get_ics_url(url):
page = requests.get(url).content
soup = bs4.BeautifulSoup(page, 'lxml')
links = soup.find_all('a')
for link in links:
if link.get('href') != None and link.get('href')[-4:]=='.ics':
endout = link.get('href')
return endout
print get_ics_url('https://meded.hms.harvard.edu/calendar')